【问题标题】:How do I bind height of element in a grid to the actual height of a grid.row如何将网格中元素的高度绑定到 grid.row 的实际高度
【发布时间】:2016-12-29 20:48:57
【问题描述】:

我有一个正在为客户开发的 Windows 8.1 通用应用程序。客户希望浮出控件的一部分与同一浮出控件的不同部分具有相同的高度。浮出控件使用数据模板,并且该数据模板包含三行两列的网格。滚动查看器中第 0 行第 1 列(行跨度 3)中的元素需要与网格中的第一行具有相同的高度。有没有办法做到这一点?

我无法使用 x:Name 获取网格,因为它位于数据模板中。 客户坚持红色箭头指示的区域与浮出控件顶部的橙色区域高度相同,并且必须在该可滚动区域内。

有什么想法吗?

谢谢,
扎克

编辑:这是 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>

【问题讨论】:

  • 附加 XAML 代码。

标签: c# xaml windows-8.1-universal


【解决方案1】:

试试这个:

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

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 2020-05-14
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 2017-02-21
    相关资源
    最近更新 更多