【问题标题】:Stretch Path to fill container拉伸路径以填充容器
【发布时间】:2015-11-18 17:32:48
【问题描述】:

我有一个这样定义的资源:

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

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

【问题讨论】:

  • 将路径的宽度和高度设置为 48(而不是画布),并将其 Stretch 属性设置为 Fill。为什么你有 Canvas?

标签: wpf xaml resources wpf-controls resourcedictionary


【解决方案1】:

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

<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>

【讨论】:

    【解决方案2】:

    尝试使用HorizontalAlignment="Stretch"VerticalAlignment="Stretch"

    但是,如果设置了 WidthHeight,它们将优先于 Stretch 设置。见Microsoft on HorizontalAlignment

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-25
      • 1970-01-01
      • 1970-01-01
      • 2019-07-14
      • 1970-01-01
      • 2015-11-19
      • 1970-01-01
      • 2016-01-03
      相关资源
      最近更新 更多