2017-08-08 73 views
0

看起來WPF中存在一些冗餘,當涉及到顯示圖像時。在圖像控制vs網格/畫布中顯示圖像背景

在我目前的應用程序,它看起來像我可以:

  • 使用ImageControl
  • 使用Grid(在網格內)並設置Grid.Background屬性。使用Canvas並設置Background屬性。

看來大多數控件都有一個背景屬性。

我正在使用的當前程序的一部分使用圖像控件來預覽硬盤中的照片。使用圖像控件與其他控件的優點/缺點是否相同?

+1

如果在某個其他元素的背景(或填充)中使用Image控件或ImageBrush,則無關緊要。 Image控件在大多數情況下更易於使用。 – Clemens

回答

1

如果你想顯示你應該使用圖像對象,例如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> 
+0

因此,如果我正在創建一個程序來在圖像頂部繪製選擇矩形,那麼圖像控件仍然會比Canvas更好? –

+1

在這樣的情況下,沒有畫布會更合適,並且您希望更改畫布背景,因爲畫布是一種佈局面板,可以將矩形繪製到其上。看到上面的代碼^ – samtrod

+0

道歉,你可能會告訴我新來回答問題。 – samtrod