Viewbox в Cider Designer скрывает все элементы управления в "коробке"
Когда я помещаю 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>
2 ответа
Вы правы, это всего лишь ограничение VS2008. VS2010 исправляет это.
В то же время я использую Expression Blend 3 Preview, которая поддерживает окна просмотра и, кажется, работает намного быстрее, чем Visual Cider. Я думаю, что предварительный просмотр Blend 3 работает до 09 сентября.
Есть ли конкретная причина, по которой вы неравнодушны к 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 автоматически растягивается до размера своего контейнера, ваши изображения будут автоматически увеличиваться / уменьшаться в макете.