wpf:使用图像宽度绑定边框宽度

时间:2017-01-06 04:29:55

标签: c# wpf listview

我正在为我的程序添加一个功能,可以将图像缩略图查看到listview。

我想要的是将边框的宽度绑定到我的图像,但我无法使其工作

这是我的代码

        <Border x:Name="imgbrdr" BorderBrush="Black" BorderThickness="1" Margin="5,5,5,5">
     <ListView Name="Thumbnails" SelectionChanged="Thumbnails_SelectionChanged" >
          <ListView.ItemTemplate>
               <DataTemplate>
                    <Image Source="{Binding Source}" Height="{Binding ElementName=imgbrdr}" RenderOptions.BitmapScalingMode="HighQuality"/>
               </DataTemplate>
          </ListView.ItemTemplate>
 </ListView>
</Border>

2 个答案:

答案 0 :(得分:3)

您忘记添加Border

的属性路径
<Image Source="{Binding Source}" Height="{Binding ElementName=imgbrdr, Path=ActualHeight}" RenderOptions.BitmapScalingMode="HighQuality"/>

答案 1 :(得分:1)

根本不需要绑定。

要使图像与ListView的宽度相同,您只需禁用水平滚动。然后,您还可以在图像控件上设置边距。 ListView宽度为例如200和10的边距,图像将是180宽。

<ListView ScrollViewer.HorizontalScrollBarVisibility="Disabled" ...>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Image Source="{Binding Source}" Margin="10"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListView>

另请注意,您也可以使用ListBox,它是ListView的基类。