Есть ли способ увеличить размер содержимого для просмотра, excpet для одного элемента управления? У меня есть viewbox с сеткой, и в этой сетке у меня есть некоторые элементы управления, и я пытаюсь увеличить все элементы управления в окне просмотра, кроме одного, возможно ли это?
Большое спасибо, Пауло
Вы можете использовать сетку для добавления слоев в макет. Таким образом, вы можете увеличить один набор элементов и оставить другой набор без увеличения.
<Grid>
<Viewbox>
<!-- Controls to zoom -->
</Viewbox>
<!-- Control to exclude from zoom -->
</Grid>
Порядок окна просмотра и других элементов управления в XAML будет зависеть от того, какой слой появится сверху.
Если это не совсем то, что вы хотите, оставьте комментарий, и я вернусь к ответу.
РЕДАКТИРОВАТЬ. Вы хотите, чтобы unzoomed control располагался относительно (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>
Что выглядит так: