2

私の XAML にはリストビューがあります。リストビューの項目テンプレートにはグリッドが含まれています。このグリッドには、4 つの列と 2 つの行があります。そのようです:
xaml アイテム テンプレート

左の列を画像で埋め、画像の下に色付きのバーを表示します。私の中心的な問題は、ほとんどの場合、画像がアイテムの高さを決定することです。画像の最大高さは、アイテムの残りの部分によって定義されるはずです。したがって、最小の 100 (グリッドMinHeight="125"-Height="25"四角形の)。または、テキストがアイテムを大きくする場合は大きくなります。しかし、テキストはアイテムの高さを定義するはずです。画像ではありません。

私の現在のxamlは次のとおりです。

<Grid MinHeight="125">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="auto" />
        <ColumnDefinition Width="2*" />
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="48" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Grid Grid.Row="0" Grid.RowSpan="2" Grid.Column="0" Width="100">
        <Grid.RowDefinitions>
            <RowDefinition Height="auto" />
            <RowDefinition Height="25" />
        </Grid.RowDefinitions>
        <Image Grid.Row="0" Source="{Binding Path=BitmapImage}" Stretch="UniformToFill" />
        <Rectangle Grid.Row="1">
            <Rectangle.Fill>
                <SolidColorBrush Color="{Binding Path=Color}" />
            </Rectangle.Fill>
        </Rectangle>
    </Grid>
    <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Path=Name}" FontWeight="ExtraBold" TextWrapping="Wrap" FontSize="16" />
    <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Path=Description}" TextWrapping="Wrap" FontSize="20" />
    <TextBlock Grid.Row="0" Grid.RowSpan="2" Grid.Column="2" Text="{Binding Path=Type}" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" FontSize="20" Margin="5" />
    <TextBlock Grid.Row="0" Grid.Column="3" Text="{Binding Path=Distance, Converter={StaticResource DistanceConverter}}" FontSize="16" />
    <Image Grid.Column="3" Grid.RowSpan="2" Source="/Images/appbar.next.rest.png" Stretch="Fill" Width="24" Height="24" />
</Grid>
4

1 に答える 1

0

http://darutk-oboegaki.blogspot.com/2011/07/binding-actualheight-and-actualwidth.htmlには、これを行う方法に関する情報が含まれており、Silverlight ではActualHeight一般的に0.

そこから、25 ピクセルを減算する必要がある場合は、次のことができます。

  • コンバーター ( を実装するオブジェクトSystem.Windows.UI.Xaml.Data.IValueConverter)を作成する
  • コンバーターのインスタンスをページ/ウィンドウのリソースに追加します。
  • Converter={StaticResource MyConverter}, ConverterParameter=25バインディングに追加します。

それが役立つことを願っています:)

于 2012-11-13T12:22:26.437 に答える