<Style x:Key="MyControl" TargetType="UserControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Path Style="{StaticResource PathA}"/>
<Path Margin="8" Style="{StaticResource PathB}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
在这种usercontrol
风格中,我将path
置于另一个path
后面,margin
为8。
如果我创建一个usercontrol
/ height
足够大的width
,那么就可以了。
问题是,如果大小接近或低于8,PathB
将会缩小。
我知道推动margin
的{{1}}。不是PathB
margin
中的相对值吗?如果我想在usercontrol
和PathA
之间保留一点空间,即使在调整大小时,我该如何处理呢?
在第二张照片中,橙色馅饼丢失了,因为它的边缘缩小了。
答案 0 :(得分:2)
您可以定义网格或路径甚至用户控件的最小宽度和高度。
<Style x:Key="MyControl" TargetType="UserControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid MinWidth="12" MinHeight="12">
<Path Style="{StaticResource PathA}"/>
<Path Margin="8" Style="{StaticResource PathB}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
或者可能在这里使用ViewBox
<Style x:Key="MyControl" TargetType="UserControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Viewbox>
<Grid>
<Path Style="{StaticResource PathA}"/>
<Path Margin="8" Style="{StaticResource PathB}" />
</Grid>
</Viewbox>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
ViewBox将在重新调整内容大小的同时保持比例不变