wpf制作公章、圆形环绕字

使用 WPF 制作 公章,主要使用到的知识点有:缩放变换,旋转变换的知识。下面附上xaml代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<Grid >
        <!--背景图片,可有可无-->
        <Grid.Background>
            <LinearGradientBrush>
                <GradientStop Color="Blue" Offset="0"/>
                <GradientStop Color="yellow" Offset="0.5"/>
                <GradientStop Color="Red" Offset="1"/>
            </LinearGradientBrush>
        </Grid.Background>
 
 
        <Grid.Resources>
            <!--定义label的样式-->
            <Style TargetType="{x:Type Label}">
                <Setter Property="RenderTransformOrigin" >
                    <Setter.Value>
                        <Point X="0.5" Y="2.5"/>
                    </Setter.Value>
                </Setter>
                <Setter Property="Width" Value="56"/>
                <Setter Property="Height" Value="50"/>
                <Setter Property="FontSize" Value="30"/>
                <Setter Property="Foreground" Value="#ffff0000"/>
                <Setter Property="VerticalAlignment" Value="Top"/>
                <Setter Property="RenderTransform">
                    <Setter.Value>
                        <TransformGroup>
                            <ScaleTransform ScaleX="0.6" ScaleY="1"/>
                            <!--绑定到Tag上,用于旋转的角度-->
                            <RotateTransform Angle="{Binding Tag,RelativeSource={RelativeSource AncestorType=Label}}"/>
                        </TransformGroup>
                    </Setter.Value>
                </Setter>
</Style>
        </Grid.Resources>
        <!--外侧圆圈-->
        <Ellipse Margin="0,1,0,0"
                 Height="250" Fill="{x:Null}"
                 Stroke="#FFFF0000"
                 x:Name="EllipseBorder"
                 HorizontalAlignment="Center"
                 VerticalAlignment="Top"
                 Width="250"
                 StrokeThickness="1"/>
        <!--中间的五角星-->
        <Path StrokeThickness="1.000000" Stroke="{x:Null}"
                  Fill="#FFFF0000"
                  Data="F1 M 55.467773,1.628906 L 68.130859,40.893066 L 109.385742,40.802734 L 75.957031,64.979004 L 88.791016,104.187500 L 55.467773,79.865234 L 22.144531,104.187500 L 34.978516,64.979004 L 1.549805,40.802734 L 42.804688,40.893066 L 55.467773,1.628906 Z"
                  HorizontalAlignment="Center"
                  RenderTransformOrigin="0.5,0.5"
                  VerticalAlignment="Center">
            <Path.RenderTransform>
                <TransformGroup>
                    <ScaleTransform ScaleX="0.68" ScaleY="0.68"/>
                    <SkewTransform AngleX="0" AngleY="0"/>
                    <RotateTransform Angle="0"/>
                    <TranslateTransform X="0" Y="0"/>
                </TransformGroup>
            </Path.RenderTransform>
        </Path>
        <!--下面是一堆文字和角度-->
        <Label Content="我" Tag="10"/>
        <Label Content="是" Tag="30"/>
        <Label Content="一" Tag="50"/>
        <Label Content="只" Tag="70"/>
        <Label Content="快" Tag="90"/>
        <Label Content="乐" Tag="110"/>
        <Label Content="的" Tag="130"/>
        <Label Content="小" Tag="150"/>
        <Label Content="黄" Tag="170"/>
        <Label Content="鸭" Tag="190"/>
        <Label Content="黄" Tag="210"/>
        <Label Content="黄" Tag="230"/>
        <Label Content="黄" Tag="250"/>
        <Label Content="黄" Tag="270"/>
        <Label Content="黄" Tag="290"/>
        <Label Content="黄" Tag="310"/>
        <Label Content="~" Tag="330"/>
        <Label Content="~" Tag="350"/>
    </Grid>

  

大致效果已经出来了,其它美化就要你们自己动手啦~

效果图:

 

 

 

posted @   zls366  阅读(435)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示