2009-08-25 5 views
2

1つのコントロールのビューボックスコンテンツをズームする方法はありますか? グリッドを持つビューボックスがあり、このグリッドにはいくつかのコントロールがあり、ビューボックスのコントロールを1つを除いてズームしようとしていますが、それは可能ですか?WPF ViewBoxズーム

多くのおかげで、 パウロ

答えて

5

あなたのレイアウトにレイヤーを追加するためにグリッドを使用することができます。これにより、1セットのアイテムをズームし、別のセットをズームしないままにすることができます。

<Grid> 
    <Viewbox> 
    <!-- Controls to zoom --> 
    </Viewbox> 
    <!-- Control to exclude from zoom --> 
</Grid> 

XAMLのビューボックスと他のコントロールの順序は、どのレイヤーが上に表示されるかによって異なります。

もしそれがあなたがしたいことをしていない場合は、コメントを残して、私は答えを再訪します。

EDIT ズームのないコントロールをViewboxの(0,0)を基準にして配置します。この状況では、グリッドの両方の子がセル(0,0)内にあるため、左上のコーナーが整列しているためです。あなたはXAMLで何を持っているのか、そして何が間違っているのかを説明できますか(元の質問を編集するなど)?ここで

はしようとするいくつかのXAMLです:

http://img20.imageshack.us/img20/2045/layout1m.png

しかし、高さが減少すると、グリッドが表示ボックスより広くなることに注意してください:このようなレイアウトを与える

<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    Background="Green"> 
    <Grid HorizontalAlignment="Center" VerticalAlignment="Center"> 
    <Viewbox> 
     <Rectangle Fill="Yellow" Width="10" Height="10" /> 
    </Viewbox> 
    <TextBlock>I am positioned at (0,0)</TextBlock> 
    <TextBlock Margin="50,50">I am positioned at (50,50)</TextBlock> 
    </Grid> 
</Page> 

したがって、内容は次のようにレイアウトされます。

http://img20.imageshack.us/img20/9397/layout2i.png

私はあなたが望むものではないと思います。その場合、あなたはキャンバスを使用して、このような何かのために行く:

<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    Background="Green"> 
    <Grid HorizontalAlignment="Center" VerticalAlignment="Center"> 
    <Viewbox> 
     <Rectangle Fill="Yellow" Width="10" Height="10" /> 
    </Viewbox> 
    <Canvas> 
     <TextBlock>I am positioned at (0,0)</TextBlock> 
     <TextBlock Margin="50,50">I am positioned at (50,50)</TextBlock> 
    </Canvas> 
    </Grid> 
</Page> 

次のようになります。

http://img20.imageshack.us/img20/6743/layout3i.png

関連する問題