Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# wpf:将边框宽度与图像宽度绑定_C#_Wpf_Listview - Fatal编程技术网

C# wpf:将边框宽度与图像宽度绑定

C# wpf:将边框宽度与图像宽度绑定,c#,wpf,listview,C#,Wpf,Listview,我正在为我的程序添加一项功能,该功能可将图像缩略图查看到listview 我想要的是将边框的宽度绑定到我的图像上,但我无法让它工作 这是我的密码 <Border x:Name="imgbrdr" BorderBrush="Black" BorderThickness="1" Margin="5,5,5,5"> <ListView Name="Thumbnails" SelectionChanged="Thumbnails_SelectionChange

我正在为我的程序添加一项功能,该功能可将图像缩略图查看到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>

您忘记添加
边框的属性路径

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

您忘记添加
边框的属性路径

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

您根本不需要那种绑定

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

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


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

您根本不需要该绑定

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

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


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

它现在可以工作了。但是,当我将边框传递给图像时,如何减小边框的大小呢。示例边框的大小为w=200,但我想传递到的图像仅为180。我尝试了ActualWidth-20,但它不起作用。您不能在Xaml中添加计算,您可能需要一个转换器。@WPFUser如何解决我的问题?谢谢,你能给我一些提示吗?你需要编写从IValueConverter继承的类,需要添加对Convert方法的计算,最后需要在xaml中引用conevrter。类似的需求在这里解决了,现在可以工作了。但是,当我将边框传递给图像时,如何减小边框的大小呢。示例边框的大小为w=200,但我想传递到的图像仅为180。我尝试了ActualWidth-20,但它不起作用。您不能在Xaml中添加计算,您可能需要一个转换器。@WPFUser如何解决我的问题?谢谢,你能给我一些提示吗?你需要编写从IValueConverter继承的类,需要添加对Convert方法的计算,最后需要在你的xaml中引用conevrter。类似的要求在这里得到解决。当问题询问宽度时,你的代码尝试绑定高度。到底是哪一个?你的要求是。。。奇怪。你不能让图像用
Stretch=“Uniform”
(可能还有
StretchDirection=“downloy”
)填满可用空间吗?@grek40查看我的答案。“统一是默认的拉伸。@克莱门斯:是的,listview滚动条应该可以做到这一点。问题是一个典型的XY,其中问题的答案不是问题的解决方案:)当问题询问宽度时,您的代码尝试绑定高度。到底是哪一个?你的要求是。。。奇怪。你不能让图像用
Stretch=“Uniform”
(可能还有
StretchDirection=“downloy”
)填满可用空间吗?@grek40查看我的答案。“统一是默认的拉伸。@克莱门斯:是的,listview滚动条应该可以做到这一点。该问题是典型的XY,其中问题的答案不是问题的解决方案:)