1

全部,

我正在尝试以合理的方式制作我正在调整大小的 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>

我认为在 Viewbox 的构建过程中一定会发生某种未处理的异常,因为图像根本不显示。我在这里做错了什么?我采取了错误的方法吗?

4

2 回答 2

3

也不例外,画布没有任何设置尺寸,这是您想要使用 ViewBox 时的要求。

我不会使用画布,你可以坚持使用网格,因为你可以在一个单元格中放置多个控件,如果你需要移动对象,你可以使用属性中的Marginor a 。TranslateTransformRenderTransform

于 2011-06-13T16:51:52.270 回答
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 似乎是正确的,没有例外,画布需要设置尺寸。

于 2011-06-13T18:19:45.080 回答