看起来WPF中存在一些冗余,当涉及到显示图像时。在图像控制vs网格/画布中显示图像背景
在我目前的应用程序,它看起来像我可以:
- 使用
ImageControl
。 - 使用
Grid
(在网格内)并设置Grid.Background
属性。使用Canvas
并设置Background
属性。
看来大多数控件都有一个背景属性。
我正在使用的当前程序的一部分使用图像控件来预览硬盘中的照片。使用图像控件与其他控件的优点/缺点是否相同?
看起来WPF中存在一些冗余,当涉及到显示图像时。在图像控制vs网格/画布中显示图像背景
在我目前的应用程序,它看起来像我可以:
ImageControl
。Grid
(在网格内)并设置Grid.Background
属性。使用Canvas
并设置Background
属性。看来大多数控件都有一个背景属性。
我正在使用的当前程序的一部分使用图像控件来预览硬盘中的照片。使用图像控件与其他控件的优点/缺点是否相同?
如果你想显示你应该使用图像对象,例如XAML代码的图像...
<Image Width="250" Height="100" Source="Resources/logo.png"/>
网格没有被设计成只包含一个图像,而不是他们是一个类型的布局面板和用于包含其他项目。欲了解更多信息see here.
画布再次不是为此目的而设计,而是他们也是一种常用于包含图形,如多边形的布局面板。欲了解更多信息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>
如果在某个其他元素的背景(或填充)中使用Image控件或ImageBrush,则无关紧要。 Image控件在大多数情况下更易于使用。 – Clemens