2

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

どうもありがとう、パウロ

4

1 に答える 1

5

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

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

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

それでもうまくいかない場合は、コメントを残してください。回答を再確認します。

EDITズームされていないコントロールを の (0,0) に対して相対的に配置する必要がありViewboxます。グリッドの両方の子がセル (0,0) にあるため、この状況で発生します。これは、左上隅が揃っていることを意味します。XAML にあるものの例を教えてください。何が問題なのですか (おそらく元の質問を編集してください)。

試してみる XAML は次のとおりです。

<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/2045/layout1m.png

ただし、高さを減らすと、グリッドがビュー ボックスよりも広くなるため、コンテンツは次のようにレイアウトされることに注意してください。

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

于 2009-08-25T10:33:23.603 に答える