Что я хочу получить, это любой способ сделать масштабирование коллекции элементов управления, но сохранить ширину, высоту и положение для подмножества этих элементов управления. Я видел вопрос How to keep element size while WPF zoom in and out?, кажется очень к тому, что я хочу, но на него не ответил, а также не очень явный, так что это улучшит вопрос.WPF Zoom, но сохраняя некоторые элементы ширины, высоты и положения
В настоящее время я использую элемент управления Zoombox, который поставляется с WPF Toolkit для .NET Framework 4.0, но я могу его изменить. Структура, что у меня есть следующие:
<Border x:Name="drawRegionBorder" Grid.Column="1" Grid.Row="1" d:LayoutOverrides="Width, Height" BorderThickness="1" CornerRadius="4" BorderBrush="{StaticResource BorderBrush}" >
<xctk:Zoombox x:Name="zoomBox">
<Grid x:Name="drawRegion" Height="{Binding Height}" Width="{Binding Width}" HorizontalAlignment="Left" VerticalAlignment="Top" Background="{DynamicResource DrawBackgroundBrush}">
<Image Source="{Binding Image}" ... />
<ListBox x:Name="points" ItemsSource="{Binding Points}">
<ListBox.Template>
<ControlTemplate>
<Canvas IsItemsHost="True"/>
</ControlTemplate>
</ListBox.Template>
</ListBox>
<ListBox x:Name="paths" ItemsSource="{Binding SomePaths}">
<ListBox.Template>
<ControlTemplate>
<Canvas IsItemsHost="True"/>
</ControlTemplate>
</ListBox.Template>
</ListBox>
<!--... Others ...-->
</Grid>
</xctk:Zoombox>
</Border>
То, что я здесь, являются несколько списков, внутри сетки и панели элементы для каждого списка является Canvas, так что каждый ребенок (но изображение) будет находиться внутри холста, а также каждый ребенок будет устанавливать свойства Canvas.X
и Canvas.Y
. Так что я хочу, это любой способ сделать масштабирование (увеличение или уменьшение) и сохранить размер poitns (эллипс) или путей ...
Из-за масштабирования, это масштабное преобразование wpf, Полагаю, что, возможно, это можно сделать, когда вы увеличите масштаб изображения, сделайте уменьшение в элементе управления, которое я хочу сохранить, и наоборот.
Примером поведения spected является дизайнер blend, например, при масштабировании сетки с строками и столбцами индикаторы столбцов сохраняют исходный размер, что-то вроде того, что я хочу для своих точек и путей.
Буду признателен за любое решение, возможно, библиотеку, прикрепленное свойство, поведение или код. Thaknks
У вас есть какая-либо ссылка, где я могу увидеть код или код рядом. –
Я добавил ссылку на учебник по рекламодателям с комментарием о том, как вы могли бы реализовать масштабирование. – cunningdave
Спасибо, я посмотрю –