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

そうです、それはVS2008の制限にすぎません。VS2010はそれを修正します。

それまでの間、私はExpression Blend 3 Previewを使用します。これは、ビューボックスをサポートし、VisualのCiderよりもはるかに高速に動作するようです。Blend3のプレビューは9月9日まで機能すると思います。

于 2009-06-17T14:14:34.157 に答える
0

Canvas にこだわる特別な理由はありますか?

次のように、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 に答える