在图像控制中显示图像与网格/画布背景

时间:2017-08-08 19:05:26

标签: c# wpf image canvas grid

在显示图像时,WPF似乎有一些冗余。

在我目前的应用程序中,看起来我可以:

  • 使用ImageControl
  • 使用Grid(在网格中)并设置Grid.Background属性。
  • 使用Canvas并设置Background属性。

似乎大多数控件都有背景属性。

我正在处理的当前程序的一部分使用图像控件来预览硬盘中的照片。它们的优点/缺点是使用图像控制还是其他一些控件?

1 个答案:

答案 0 :(得分:1)

如果要显示图像,则应使用图像对象,例如XAML代码......

 <Image Width="250" Height="100" Source="Resources/logo.png"/>

网格不是为了简单地包含图像而设计的,而是一种布局面板,用于包含其他项目。有关详细信息see here.

Canvas再次不是为此目的设计的,而是它们也是一种常用于包含图形的布局面板,例如多边形。有关详细信息see here.

优点和缺点,只是你使用一个元素的目的不是为它设计的。您应该使用适当的元素进行正确的编码实践。

编辑如果您想在图像上叠加形状,那么画布会更合适。请参阅下面的代码......

 <Canvas HorizontalAlignment="Left" Height="213" Margin="115,60,0,0" VerticalAlignment="Top" Width="214">
            <Canvas.Background>
                <ImageBrush ImageSource="images.jpg"/>
            </Canvas.Background>
            <Rectangle Fill="#FFF4F4F5" Height="66" Canvas.Left="135" Stroke="Black" Canvas.Top="108" Width="60"/>
            <Rectangle Fill="#FFF4F4F5" Height="80" Canvas.Left="10" Stroke="Black" Canvas.Top="18" Width="84"/>
        </Canvas>