0

当我将 Viewbox 作为 WPF 窗口的子元素放置时,Cider Designer “隐藏”所有内部控件,文本“Viewbox”仅出现在显示屏上。

为什么?这个布局有问题吗?是否有更好的布局可以在画布上实现可缩放图像?

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Background="Green" Width="900" Height="700">
    <Viewbox Stretch="Uniform">
        <Canvas Height="600" Width="800">
            <Image Canvas.Left="74" Canvas.Top="83" Name="image1" Source="/WpfApplication1;component/bitmap20.bmp" />
            <Image Canvas.Left="84" Canvas.Top="103" Name="image2" Source="/WpfApplication1;component/bitmap21.bmp" />
            <Image Canvas.Left="94" Canvas.Top="123" Name="image3" Source="/WpfApplication1;component/bitmap22.bmp" />
            <Image Canvas.Left="104" Canvas.Top="143" Name="image4" Source="/WpfApplication1;component/bitmap23.bmp" />
            <Image Canvas.Left="114" Canvas.Top="163" Name="image5" Source="/WpfApplication1;component/bitmap24.bmp" />
            <Image Canvas.Left="124" Canvas.Top="183" Name="image6" Source="/WpfApplication1;component/bitmap25.bmp" />
            <Image Canvas.Left="134" Canvas.Top="203" Name="image7" Source="/WpfApplication1;component/bitmap26.bmp" />
            <Image Canvas.Left="144" Canvas.Top="223" Name="image8" Source="/WpfApplication1;component/bitmap27.bmp" />
        </Canvas>
    </Viewbox>
</Window>
4

2 回答 2

0

你偏爱 Canvas 有什么特别的原因吗?

您可以将图像直接放在 Grid 中,使用 Stretch="Uniform" 如下所示:

  <Grid>  
    <Grid.ColumnDefinitions>
      <ColumnDefinition></ColumnDefinition>
...
      <ColumnDefinition></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
      <RowDefinition></RowDefinition>
...
      <RowDefinition></RowDefinition>
    </Grid.RowDefinitions>
    <Image Grid.Column="0" Grid.Row="0" Source="/WpfApplication1;component/bitmap20.bmp" Stretch="Uniform"></Image>
    <Image Grid.Column="0" Grid.Row="1" Source="/WpfApplication1;component/bitmap21.bmp" Stretch="Uniform"></Image>
    <Image Grid.Column="1" Grid.Row="0" Source="/WpfApplication1;component/bitmap22.bmp" Stretch="Uniform"></Image>
...
...
  </Grid>

并且由于 Grid 会自动拉伸到其容器的大小,因此您的图像将在布局中自动增长/缩小。

于 2009-06-17T04:48:19.540 回答
0

你是对的,这只是VS2008的一个限制。VS2010 解决了这个问题。

同时,我使用了Expression Blend 3 Preview,它支持视图框,而且似乎比 Visual 的 Cider 运行得更快。我认为 Blend 3 预览版将持续到 9 月 9 日。

于 2009-06-17T14:14:34.157 回答