2017-01-06 130 views
1

我正在向我的程序添加一項功能,該功能將圖像縮略圖查看到listview。wpf:綁定與圖像寬度的邊框寬度

我要的是邊框的寬度綁定到我的形象,但我不能讓它工作

這裏是我的代碼

 <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> 
+0

雖然問題詢問寬度,但您的代碼嘗試綁定高度。它究竟是哪一個? – Clemens

+0

您的要求是...奇怪。難道你不能讓圖像用'Stretch =「Uniform」'(可能是'StretchDirection =「DownOnly」')填充可用空間嗎? – grek40

+1

@ grek40查看我的回答。 Uniform是默認的Stretch。 – Clemens

回答

3

你忘了加上Border的屬性路徑。

<Image Source="{Binding Source}" Height="{Binding ElementName=imgbrdr, Path=ActualHeight}" RenderOptions.BitmapScalingMode="HighQuality"/> 
+0

現在工作。但是當我將它傳遞給圖像時,我如何減小邊框的大小。 例如邊界的大小是w = 200,但我想傳遞給圖像只有180。我試過ActualWidth - 20但它不起作用 –

+3

你不能在Xaml中添加計算,你可能需要一個Converter。 – WPFUser

+0

@WPFUser我如何解決我的問題?謝謝你,你可以給我一些提示 –

1

根本不需要那個綁定。

,使圖像的寬度相同的ListView,你只需要禁用水平滾動。您也可以在圖像控件上設置一個邊距。列表視圖寬度例如200和10的邊距,圖像將是180寬。

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

請注意,您還可以使用ListBox,它是ListView的基類。