看起來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