在显示图像时,WPF似乎有一些冗余。
在我目前的应用程序中,看起来我可以:
ImageControl
。Grid
(在网格中)并设置Grid.Background
属性。Canvas
并设置Background
属性。似乎大多数控件都有背景属性。
我正在处理的当前程序的一部分使用图像控件来预览硬盘中的照片。它们的优点/缺点是使用图像控制还是其他一些控件?
答案 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>