2016-12-29 93 views
0

我有一个Windows 8.1通用应用程序,我正在为客户端工作。客户希望飞出的一部分与同一弹出窗口的不同部分具有相同的高度。弹出窗口使用数据模板,该数据模板包含三行两列的网格。第0行第1列(行跨度3)中的滚动查看器中的元素需要与网格中的第一行高度相同。有没有办法做到这一点?如何将网格中元素的高度绑定到grid.row的实际高度

enter image description here

我不能与X电网:名称,因为它是一个DataTemplate内。 客户端坚持红色箭头指示的区域与弹出窗口顶部的橙色区域高度相同,并且必须位于该可滚动区域内。

任何想法?

感谢,
扎克

编辑:这里是XAML。

<DataTemplate x:Name="MultiselectFlyout"> 
     <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="White"> 
      <Grid.RowDefinitions> 
       <RowDefinition Height=".25*" /> 
       <RowDefinition Height=".18*" /> 
       <RowDefinition Height="*" /> 
      </Grid.RowDefinitions> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="*" /> 
       <ColumnDefinition Width=".22*" /> 
      </Grid.ColumnDefinitions> 
      <Border Background="Gray" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
       <TextBlock Text="{Binding SelectedName, Mode=OneWay}" FontSize="34" FontFamily="{StaticResource GothamMedium}" TextAlignment="Center" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center"/> 
      </Border> 
      <Border Grid.Row="1" Grid.ColumnSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="Transparent"> 
       <Image Source="../Assets/dropshadow_B.png" Height="150" Margin="0,-110,0,0" Opacity=".3" Stretch="Fill" VerticalAlignment="Top" HorizontalAlignment="Stretch"/> 
      </Border> 
      <Border Background="{StaticResource PrimaryColor}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
       <TextBlock Foreground="White" Padding="0" TextAlignment="Center" VerticalAlignment="Center"> 
        <Run Text="{Binding Title}" FontSize="44" FontFamily="{StaticResource GothamMedium}"/> 
        <LineBreak/> 
        <Run Text="{Binding Subtitle[0]}" FontSize="28" FontFamily="{StaticResource GothamLight}"/> 
       </TextBlock> 
      </Border> 
      <Grid x:Name="ImageSwap" Grid.Row="2" Background="White"> 
       <Border Background="Transparent" BorderBrush="Gray" BorderThickness="0,0,1,0"> 
        <Image Source="{Binding BottomImage, Mode=OneWay}" Stretch="Uniform" ImageOpened="Image_Opened"/> 
       </Border> 
       <Border Background="Transparent" BorderBrush="Gray" BorderThickness="0,0,1,0"> 
        <Image Source="{Binding TopImage, Mode=OneWay}" Opacity="{Binding TopImgVisibility, Mode=OneWay}" Stretch="Uniform" ImageOpened="Image_Opened"/> 
       </Border> 
      </Grid> 
      <ScrollViewer Grid.Row="1" Grid.RowSpan="2" Grid.Column="1" Background="White" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VerticalScrollBarVisibility="Hidden" VerticalScrollMode="Enabled" Loaded="ScrollViewer_Loaded" Tapped="ScrollViewer_Tapped"> 
       <ItemsControl ItemsSource="{Binding Colors, Mode=OneWay}" ItemTemplateSelector="{StaticResource DividerOrImageSelector}" Background="White" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
        <ItemsControl.ItemsPanel> 
         <ItemsPanelTemplate> 
          <StackPanel Orientation="Vertical" HorizontalAlignment="Stretch" VerticalAlignment="Top"/> 
         </ItemsPanelTemplate> 
        </ItemsControl.ItemsPanel> 
       </ItemsControl> 
      </ScrollViewer> 
      <Border Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="LightGray"> 
       <Viewbox StretchDirection="DownOnly" Margin="0"> 
        <TextBlock FontFamily="{StaticResource GothamMedium}" Foreground="Black" FontSize="22" TextAlignment="Center" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
         <Run Text="SCROLL"/><LineBreak /><Run Text="TO SEE ALL"/><LineBreak /><Run Text="THE COLORS"/> 
        </TextBlock> 
       </Viewbox> 
      </Border> 
     </Grid> 
    </DataTemplate> 
+0

附加的XAML代码。 –

回答

0

试试这个:

<RowDefinition x:Name="row"> 
<Button Height="{Binding Height,ElementName="row"}"> 
相关问题