wpf 使用路径标记几何图形创建重新加载按钮

lf3rwulv  于 2023-04-22  发布在  其他
关注(0)|答案(2)|浏览(155)

我想使用wpf路径标记语法创建一个重新加载图标。该图标应如下所示:

问题是,我不知道如何创建一个开放的圆圈,例如正确的椭圆弧。
我已经创建了一个类似的按钮如下。我的重新加载按钮应在相同的规模。

<ControlTemplate TargetType="Button" x:Key="buttonCustomDelete">
        <ControlTemplate.Resources>
            <Style TargetType="Path">
                <Setter Property="Fill" Value="Transparent"/>
                <Setter Property="StrokeThickness" Value="2"/>
            </Style>
        </ControlTemplate.Resources>

        <Canvas >
            <Path x:Name="circle">
                <Path.Data>
                    <EllipseGeometry Center="7,7" RadiusX="7" RadiusY="7"/>
                </Path.Data>
            </Path>
            <Path x:Name="cross">
                <Path.Data>
                    <GeometryGroup>
                        <LineGeometry StartPoint="3,3" EndPoint="11,11"/>
                        <LineGeometry StartPoint="11,3" EndPoint="3,11"/>
                    </GeometryGroup>
                </Path.Data>
            </Path>

        </Canvas>
        <ControlTemplate.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter TargetName="cross" Property="Stroke" Value="White"/>
                <Setter TargetName="circle" Property="Fill" Value="#DB4437"/>
            </Trigger>
            <Trigger Property="IsMouseOver" Value="False">
                <Setter TargetName="cross" Property="Stroke" Value="LightGray"/>
                <Setter TargetName="circle" Property="Fill" Value="Transparent"/>
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>
4urapxun

4urapxun1#

如前所述-您可以使用Inkscape让程序绘制您的Path-检查教程here
如果你觉得第三方库还可以-我会推荐你Font Awesome for WPF
这是一个非常恶心的NuGetpackage,包括重新加载Icon,如您的问题所示。它也有相当多的下载-所以不要害怕使用它。它也有一个MIT许可证-什么是非常酷的。
你也可以看看他们的Repository-它是开源的。

**附加说明:**如何在Button中使用Path

<Button Height="55"
            Width="55">
        <Button.ContentTemplate>
            <DataTemplate>
                <Rectangle Width="35"
                           Height="35">
                    <Rectangle.Fill>
                        <VisualBrush Stretch="Fill"
                                     Visual="{StaticResource my_fontawesome_icon}" />
                    </Rectangle.Fill>
                </Rectangle>
            </DataTemplate>
        </Button.ContentTemplate>
    </Button>

请不要忘记添加资源。您也可以将路径粘贴到VisualBrush.Visual中。

krugob8w

krugob8w2#

我知道,这是一个古老的主题,但人们可以尝试这样做:

<Path Stroke="DarkGreen"
                StrokeThickness="2"
                Data="M14,6 A6,6 0 1 0 16,10 M14,5 L9,2 M14,5 L9,8 "
                Height="20"
                Width="20" />

这不是形式,OP要求的,但应该给予一个“开放圈”的提示。

相关问题