2015-11-18 43 views
0

我已经定义了这样的资源:拉伸的路径,以填补集装箱

<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。无论我尝试什么,我都无法使用资源来填充按钮。如何做呢?

我打开如果需要更改按钮实现。我所需要的只是能够以某种颜色在按钮中显示图标。

+1

设置宽度和路径,以48(而不是画布)和Stretch属性来填充的高度。为什么你有帆布呢? – Clemens

回答

1

删除画布并在Path上使用Stretch="Uniform"。如果您想要减小Path的高度/宽度,请将其添加到例如。 Grid或只设置WidthPathHeight

<Grid Width="48" Height="48"> 
     <Path Fill="{DynamicResource CurrentColor}" 
       Stretch="Uniform" 
       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" /> 
</Grid>