Я создал этот простой пользовательский элемент управления кнопкой расширения с помощью WPF:
Я разработал эту штуку с Width
и Height
, установленными на 100, чтобы я мог видеть, что я на самом деле делаю. Упрощенный XAML этого пользовательского элемента управления:
<UserControl x:Class="Foobar.ExpandButton"
...
Width="100" Height="100">
...
<Border>
...
<Canvas>
<Line ... X1="20" Y1="20" X2="50" Y2="50"/>
<Line ... X1="80" Y1="20" X2="50" Y2="50"/>
<Line ... X1="20" Y1="50" X2="50" Y2="80"/>
<Line ... X1="80" Y1="50" X2="50" Y2="80"/>
</Canvas>
</Border>
</UserControl>
В конце концов, кнопка должна правильно отображаться в разных размерах, например. в 20 × 20 точках. Однако из-за координат, используемых с элементами Line
, я не могу просто вставить этот пользовательский элемент управления в другое окно следующим образом:
<foobar:ExpandButton Width="20" Height="20" /> <!-- doesn't scale correctly! -->
Я мог бы применять LayoutTransform
→ ScaleTransform
каждый раз, когда я использую элемент с размером, отличным от его размера по умолчанию 100 × 100 точек, но должно быть лучшее решение.
Как определить координаты линий так, чтобы они относились к общему размеру пользовательского элемента управления?