2011-06-13 36 views
1

所有,把帆布內Viewbox控件在Silverlight中有圖片

我試圖使Silverlight應用程序我正在做調整以合理的方式。要做到這一點,我想我會使用動態網格。在網格的中心,我需要在畫布內部放置圖像,因爲我將動態地將對象放置在畫布的頂部。理想情況下,隨着用戶使瀏覽器窗口變大,中央列將能夠調整大小並增大,從而增加圖像。

下面是我得到了什麼:

<Viewbox Grid.Row="0" Grid.Column="1"> 
    <Canvas x:Name="cvsCenterPane"> 
     <Image x:Name="imgFormImage" MouseLeftButtonDown="imgFormImage_MouseLeftButtonDown" 
       MouseLeftButtonUp="imgFormImage_MouseLeftButtonUp" MouseMove="imgFormImage_MouseMove" /> 
    </Canvas> 
</Viewbox> 

在後面的代碼,然後我設置圖像源。

這裏是我的網格定義:

<Grid x:Name="LayoutRoot" Background="DarkCyan" ShowGridLines="True"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="300" /> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="300" /> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="100" /> 
    </Grid.RowDefinitions> 

我認爲必須有某種視框的建設過程中發生的,因爲圖像不顯示在所有未處理的異常的。我在這裏做錯了什麼?我採取了錯誤的做法嗎?

回答

3

沒有例外,畫布沒有任何設置尺寸,這是您希望使用ViewBox時的要求。

我一個不會用畫布,你可以與電網,因爲你可以在單元格中放置一個以上的控制,如果你需要移動的物體周圍,你可以在RenderTransform使用MarginTranslateTransform棒屬性。

0

這不起作用,因爲您無法使用silverlight在Viewbox中設置子項的x:Name屬性。至少根據幾個來源:

http://blog.ningzhang.org/2008/11/viewbox-control-in-silverlight-toolkit.html
http://forums.silverlight.net/forums/p/48535/128830.aspx
http://forums.silverlight.net/forums/p/45789/123941.aspx#123941

這似乎是由設計。已經提出了一些解決方法,所以我會嘗試它們。

編輯:HB似乎是正確的,沒有例外,畫布需要設置尺寸。