我有一个像这样定义的资源:
<Canvas x:Key="export"
Width="48"
Height="48">
<Path Fill="{DynamicResource CurrentColor}"
Data="M23,12L19,8V11H10V13H19V16M1,18V6C1,4.89 1.9,4 3,4H15A2,2 0 0,1 17,6V9H15V6H3V18H15V15H17V18A2,2 0 0,1 15,20H3A2,2 0 0,1 1,18Z" />
</Canvas>
我正在使用它:
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Margin="10,5,10,10"
Width="Auto"
Height="Auto">
<Button.Template>
<ControlTemplate TargetType="Button">
<Rectangle Width="48"
Height="48"
Fill="{DynamicResource CurrentColor}">
<Rectangle.OpacityMask>
<VisualBrush Stretch="Fill"
Visual="{Binding}" />
</Rectangle.OpacityMask>
</Rectangle>
</ControlTemplate>
</Button.Template>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
可以看出我正在尝试将矩形大小设置为48x48,但资源中的路径数据坐标被定义为将其绘制为24x24。无论我尝试什么,我都无法拉伸资源来填充按钮。怎么做到呢?
如果需要,我可以更改按钮实现。我只需要能够以某种颜色显示按钮中的图标。
答案 0 :(得分:1)
尝试使用HorizontalAlignment="Stretch"
和VerticalAlignment="Stretch"
但是如果设置了Width
和Height
,它们将优先于Stretch
设置。见Microsoft on HorizontalAlignment。
答案 1 :(得分:1)
删除画布并使用Stretch="Uniform"
上的Path
。如果您想减少Path
的高度/宽度,请将其添加到例如。 Grid
或仅设置Width
的{{1}}和Height
:
Path