WPF自定义仪表盘转盘

1 篇文章 0 订阅

闲来无事分享一个wpf仪表盘程序,直接复制粘贴改一下程序名就可以了

<Window x:Class="WpfApp5.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp5"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <Style TargetType="{x:Type TextBlock}">
            <Setter Property="FontFamily" Value="微软雅黑"/>
            <Setter Property="FontWeight" Value="Bold"/>
            <Setter Property="Foreground" Value="Honeydew"/>
            <Setter Property="FontSize" Value="10"/>

        </Style>
    </Window.Resources>
    <Grid>
        <Grid Width="300" Height="300" HorizontalAlignment="Center" VerticalAlignment="Center" >
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="4"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
                <RowDefinition Height="4"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <Grid Width="300" Height="300" Grid.RowSpan="3" Grid.ColumnSpan="3">
                <Grid.ColumnDefinitions>
                    <!--外圈-->
                    <ColumnDefinition Width="25"/>
                    <ColumnDefinition Width="3"/>
                    <ColumnDefinition Width="5"/>
                    <ColumnDefinition Width="12"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="30"/>
                    <ColumnDefinition Width="20"/>
                    <ColumnDefinition Width="2"/>
                    <ColumnDefinition Width="20"/>
                    <ColumnDefinition Width="30"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="12"/>
                    <ColumnDefinition Width="5"/>
                    <ColumnDefinition Width="3"/>
                    <ColumnDefinition Width="25"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="25"/>
                    <RowDefinition Height="3"/>
                    <RowDefinition Height="5" />
                    <RowDefinition Height="12"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="30"/>
                    <RowDefinition Height="20"/>
                    <RowDefinition Height="2"/>
                    <RowDefinition Height="20"/>
                    <RowDefinition Height="30" />
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="12"/>
                    <RowDefinition Height="5"/>
                    <RowDefinition Height="3"/>
                    <RowDefinition Height="25"/>
                </Grid.RowDefinitions>
                <Ellipse Stroke="#FF27A6E2" Grid.RowSpan="15" Grid.ColumnSpan="15" Margin="0">
                    <Ellipse.Fill>
                        <RadialGradientBrush>
                            <GradientStop Color="Black" Offset="0.1"/>
                            <GradientStop Color="Black" Offset="0.75"/>
                            <GradientStop Color="#FF3E3737" Offset="0.85"/>
                            <GradientStop Color="#FF353535" Offset="0.80"/>
                            <GradientStop Color="#FF787272" Offset="0.93"/>
                            <GradientStop Color="#FF303030" Offset="1"/>
                        </RadialGradientBrush>
                    </Ellipse.Fill>
                </Ellipse>
                <Ellipse Grid.Column="1" Fill="White" Margin="0" Grid.Row="1" Grid.RowSpan="13" Stroke="#FF27A6E2" Grid.ColumnSpan="13"/>
                <Ellipse Stroke="#FF27A6E2" Grid.Row="2" d:LayoutOverrides="HorizontalAlignment" Grid.Column="2" Grid.ColumnSpan="11" Grid.RowSpan="11" Margin="0">
                    <Ellipse.Fill>
                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                            <GradientStop Color="#FF363535" Offset="0"/>
                            <GradientStop Color="#FF363535" Offset="1"/>
                            <GradientStop Color="#FF3C3A3A" Offset="0.5"/>
                        </LinearGradientBrush>
                    </Ellipse.Fill>
                </Ellipse>
                <Border Grid.Column="6"  Grid.ColumnSpan="3">
                    <TextBlock TextWrapping="Wrap" Text="360°" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <Border   Grid.Row="6" Grid.RowSpan="3" Margin="1.201,0,0,0">
                    <TextBlock TextWrapping="Wrap" Text="270°" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Center">
                        <TextBlock.RenderTransform>
                            <TransformGroup>
                                <ScaleTransform/>
                                <SkewTransform/>
                                <RotateTransform Angle="270"/>
                                <TranslateTransform/>
                            </TransformGroup>
                        </TextBlock.RenderTransform>
                    </TextBlock>
                </Border>
                <Border   Grid.Row="14" Grid.ColumnSpan="3" Grid.Column="6">
                    <TextBlock TextWrapping="Wrap" Text="180°" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <Border   Grid.Row="6" Grid.Column="14" Grid.RowSpan="3">
                    <TextBlock TextWrapping="Wrap" Text="90°" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Center">
                        <TextBlock.RenderTransform>
                            <TransformGroup>
                                <ScaleTransform/>
                                <SkewTransform/>
                                <RotateTransform Angle="90"/>
                                <TranslateTransform/>
                            </TransformGroup>
                        </TextBlock.RenderTransform>
                    </TextBlock>
                </Border>
                <Rectangle Grid.Column="7" Margin="0.062,0,0,-0.25" Grid.Row="2" Stroke="White" Fill="White" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin"/>
                <Rectangle Grid.Column="7" Grid.Row="12" Stroke="White" Fill="White" Margin="0.062,0,0,-0.001" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin"/>
                <Rectangle Grid.Column="2" Fill="White" Grid.Row="7" Stroke="White" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin"/>
                <Rectangle Grid.Column="12" Fill="White" Grid.Row="7" Stroke="White" Margin="0.25,0,0,0" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin"/>
                <Ellipse Grid.Column="5" Grid.Row="5" Grid.RowSpan="5" Grid.ColumnSpan="5">
                    <Ellipse.Fill>
                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                            <GradientStop Color="#FF817B7B" Offset="0"/>
                            <GradientStop Color="#FF977C7C" Offset="1"/>
                            <GradientStop Color="#FF939090" Offset="0.584"/>
                        </LinearGradientBrush>
                    </Ellipse.Fill>
                </Ellipse>
                <Ellipse Grid.ColumnSpan="3" Grid.Column="6" Grid.Row="6" Grid.RowSpan="3" Stroke="#FF272727" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin">
                    <Ellipse.Fill>
                        <RadialGradientBrush>
                            <GradientStop Color="White" Offset="0"/>
                            <GradientStop Color="#FF343434" Offset="1"/>
                        </RadialGradientBrush>
                    </Ellipse.Fill>
                </Ellipse>
                <Border Grid.Column="6" Grid.Row="3" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.ColumnSpan="3" Width="32" >
                    <TextBlock TextWrapping="Wrap" Text="N" Foreground="Red" Height="13.197" Width="8.48"/>
                </Border>
                <Border Grid.Column="3" Grid.Row="6" HorizontalAlignment="Center" VerticalAlignment="Center" Height="32" Margin="0.618,0" Grid.RowSpan="3" d:LayoutOverrides="LeftMargin, RightMargin" >
                    <TextBlock TextWrapping="Wrap" Text="W" RenderTransformOrigin="0.5,0.5" Height="13.197" Width="10.763">
                        <TextBlock.RenderTransform>
                            <TransformGroup>
                                <ScaleTransform/>
                                <SkewTransform/>
                                <RotateTransform Angle="270"/>
                                <TranslateTransform/>
                            </TransformGroup>
                        </TextBlock.RenderTransform>
                    </TextBlock>
                </Border>
                <Border Grid.Column="11" Grid.Row="6" HorizontalAlignment="Center" VerticalAlignment="Center" Height="32" Grid.RowSpan="3" Width="12" RenderTransformOrigin="0.5,0.5">
                    <Border.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform/>
                            <SkewTransform/>
                            <RotateTransform Angle="90"/>
                            <TranslateTransform/>
                        </TransformGroup>
                    </Border.RenderTransform>
                    <TextBlock TextWrapping="Wrap" Text="E" Height="13.197" Width="5.717"/>
                </Border>
                <Border Grid.Column="6" Grid.Row="11" Grid.ColumnSpan="3">
                    <TextBlock TextWrapping="Wrap" Text="S" Height="13.197" Width="6.017"/>
                </Border>
                <Border Grid.ColumnSpan="3" Grid.Column="6" Grid.Row="4">
                    <TextBlock TextWrapping="Wrap" Text="北" Width="10" VerticalAlignment="Bottom"/>
                </Border>
                <Border Grid.Column="4" Grid.Row="6" Grid.RowSpan="3" Height="30.098" Margin="0,1.902,0,0">
                    <TextBlock TextWrapping="Wrap" Text="西" Width="10" VerticalAlignment="Center" HorizontalAlignment="Right" RenderTransformOrigin="0.5,0.5" Margin="0"/>
                </Border>
                <Border Grid.ColumnSpan="3" Grid.Column="6" Grid.Row="10" Width="28.5">
                    <TextBlock TextWrapping="Wrap" Text="南" VerticalAlignment="Top" HorizontalAlignment="Center"/>
                </Border>
                <Border Grid.Column="10" Grid.Row="6" Grid.RowSpan="3">
                    <TextBlock TextWrapping="Wrap" Text="东" Height="13.197" Width="10" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left" VerticalAlignment="Center"/>

                </Border>
            </Grid>
            <Grid Width="300" Height="300" RenderTransformOrigin="0.5,0.5" Grid.RowSpan="3" Grid.ColumnSpan="3">
                <Grid.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform/>
                        <SkewTransform/>
                        <RotateTransform Angle="22.5"/>
                        <TranslateTransform/>
                    </TransformGroup>
                </Grid.RenderTransform>
                <Grid.ColumnDefinitions>
                    <!--外圈-->
                    <ColumnDefinition Width="25"/>
                    <ColumnDefinition Width="3"/>
                    <ColumnDefinition Width="5"/>
                    <ColumnDefinition Width="12"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="30"/>
                    <ColumnDefinition Width="20"/>
                    <ColumnDefinition Width="2"/>
                    <ColumnDefinition Width="20"/>
                    <ColumnDefinition Width="30"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="12"/>
                    <ColumnDefinition Width="5"/>
                    <ColumnDefinition Width="3"/>
                    <ColumnDefinition Width="25"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="25"/>
                    <RowDefinition Height="3"/>
                    <RowDefinition Height="5" />
                    <RowDefinition Height="12"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="30"/>
                    <RowDefinition Height="20"/>
                    <RowDefinition Height="2"/>
                    <RowDefinition Height="20"/>
                    <RowDefinition Height="30" />
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="12"/>
                    <RowDefinition Height="5"/>
                    <RowDefinition Height="3"/>
                    <RowDefinition Height="25"/>
                </Grid.RowDefinitions>
                <Border Grid.Column="6"  Grid.ColumnSpan="3">
                    <TextBlock TextWrapping="Wrap" Text="22.5°" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <Border   Grid.Row="6" Grid.RowSpan="3" Margin="1.201,0,0,0">
                    <TextBlock TextWrapping="Wrap" Text="292.5°" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="-5,0">
                        <TextBlock.RenderTransform>
                            <TransformGroup>
                                <ScaleTransform/>
                                <SkewTransform/>
                                <RotateTransform Angle="270"/>
                                <TranslateTransform/>
                            </TransformGroup>
                        </TextBlock.RenderTransform>
                    </TextBlock>
                </Border>
                <Border   Grid.Row="14" Grid.ColumnSpan="3" Grid.Column="6">
                    <TextBlock TextWrapping="Wrap" Text="202.5°" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <Border   Grid.Row="6" Grid.Column="14" Grid.RowSpan="3">
                    <TextBlock TextWrapping="Wrap" Text="112.5°" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="-5,0">
                        <TextBlock.RenderTransform>
                            <TransformGroup>
                                <ScaleTransform/>
                                <SkewTransform/>
                                <RotateTransform Angle="270"/>
                                <TranslateTransform/>
                            </TransformGroup>
                        </TextBlock.RenderTransform>
                    </TextBlock>
                </Border>
                <Rectangle Grid.Column="7" Margin="0.062,0,0,-0.25" Grid.Row="2" Stroke="White" Fill="White" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin"/>
                <Rectangle Grid.Column="7" Grid.Row="12" Stroke="White" Fill="White" Margin="0.062,0,0,-0.001" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin"/>
                <Rectangle Grid.Column="2" Fill="White" Grid.Row="7" Stroke="White" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin"/>
                <Rectangle Grid.Column="12" Fill="White" Grid.Row="7" Stroke="White" Margin="0.25,0,0,0" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin"/>
                <Border Grid.Column="6" Grid.Row="3" Grid.ColumnSpan="3" >
                    <TextBlock TextWrapping="Wrap" Text="NNE" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <Border Grid.Column="1" Grid.Row="6" Margin="0,-8,-14,-10" Grid.RowSpan="3" Grid.ColumnSpan="3" >
                    <TextBlock TextWrapping="Wrap" Text="WNW" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Center">
                        <TextBlock.RenderTransform>
                            <TransformGroup>
                                <ScaleTransform/>
                                <SkewTransform/>
                                <RotateTransform Angle="270"/>
                                <TranslateTransform/>
                            </TransformGroup>
                        </TextBlock.RenderTransform>
                    </TextBlock>
                </Border>
                <Border Grid.Column="11" Grid.Row="6" Grid.RowSpan="3" RenderTransformOrigin="0.5,0.5" Grid.ColumnSpan="2" Margin="-3.867,-0.263,1.161,0.263">
                    <Border.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform/>
                            <SkewTransform/>
                            <RotateTransform Angle="89"/>
                            <TranslateTransform/>
                        </TransformGroup>
                    </Border.RenderTransform>
                    <TextBlock TextWrapping="Wrap" Text="ESE" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <Border Margin="-7.493,-10.331,-7.507,0.331"  Grid.Column="6" Grid.Row="11" Grid.ColumnSpan="3" Grid.RowSpan="3">
                    <TextBlock TextWrapping="Wrap" Text="SSW" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <Border Grid.ColumnSpan="3" Grid.Column="6" Grid.Row="4" HorizontalAlignment="Center" VerticalAlignment="Center">
                    <TextBlock TextWrapping="Wrap" Text="北&#xA;东&#xA;北" VerticalAlignment="Bottom" HorizontalAlignment="Center"/>
                </Border>
                <Border Grid.Column="4" Grid.Row="6" Grid.RowSpan="3" Height="30.098" Margin="0,1.902,0,0">
                    <TextBlock TextWrapping="Wrap" Text="西 西 北 " RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Right" VerticalAlignment="Center"/>
                </Border>
                <Border Grid.ColumnSpan="3" Grid.Column="6" Grid.Row="10" Width="28.5">
                    <TextBlock TextWrapping="Wrap" Text="南&#xA;西&#xA;南" HorizontalAlignment="Center"/>
                </Border>
                <Border Grid.Column="10" Grid.Row="6" Grid.RowSpan="3">
                    <TextBlock TextWrapping="Wrap" Text=" 东 东 南" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left" VerticalAlignment="Center"/>

                </Border>

            </Grid>
            <Grid Width="300" Height="300" RenderTransformOrigin="0.5,0.5" Grid.RowSpan="3" Grid.ColumnSpan="3">
                <Grid.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform/>
                        <SkewTransform/>
                        <RotateTransform Angle="45"/>
                        <TranslateTransform/>
                    </TransformGroup>
                </Grid.RenderTransform>
                <Grid.ColumnDefinitions>
                    <!--外圈-->
                    <ColumnDefinition Width="25"/>
                    <ColumnDefinition Width="3"/>
                    <ColumnDefinition Width="5"/>
                    <ColumnDefinition Width="12"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="30"/>
                    <ColumnDefinition Width="20"/>
                    <ColumnDefinition Width="2"/>
                    <ColumnDefinition Width="20"/>
                    <ColumnDefinition Width="30"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="12"/>
                    <ColumnDefinition Width="5"/>
                    <ColumnDefinition Width="3"/>
                    <ColumnDefinition Width="25"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="25"/>
                    <RowDefinition Height="3"/>
                    <RowDefinition Height="5" />
                    <RowDefinition Height="12"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="30"/>
                    <RowDefinition Height="20"/>
                    <RowDefinition Height="2"/>
                    <RowDefinition Height="20"/>
                    <RowDefinition Height="30" />
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="12"/>
                    <RowDefinition Height="5"/>
                    <RowDefinition Height="3"/>
                    <RowDefinition Height="25"/>
                </Grid.RowDefinitions>
                <Border Grid.Column="6"  Grid.ColumnSpan="3">
                    <TextBlock TextWrapping="Wrap" Text="45°" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <Border   Grid.Row="6" Grid.RowSpan="3" Margin="1.201,0,0,0">
                    <TextBlock TextWrapping="Wrap" Text="315°" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Center">
                        <TextBlock.RenderTransform>
                            <TransformGroup>
                                <ScaleTransform/>
                                <SkewTransform/>
                                <RotateTransform Angle="270"/>
                                <TranslateTransform/>
                            </TransformGroup>
                        </TextBlock.RenderTransform>
                    </TextBlock>
                </Border>
                <Border   Grid.Row="14" Grid.ColumnSpan="3" Grid.Column="6">
                    <TextBlock TextWrapping="Wrap" Text="225°" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <Border   Grid.Row="6" Grid.Column="14" Grid.RowSpan="3">
                    <TextBlock TextWrapping="Wrap" Text="135°" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Center">
                        <TextBlock.RenderTransform>
                            <TransformGroup>
                                <ScaleTransform/>
                                <SkewTransform/>
                                <RotateTransform Angle="270"/>
                                <TranslateTransform/>
                            </TransformGroup>
                        </TextBlock.RenderTransform>
                    </TextBlock>
                </Border>
                <Rectangle Grid.Column="7" Margin="0.062,0,0,-0.25" Grid.Row="2" Stroke="White" Fill="White" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin"/>
                <Rectangle Grid.Column="7" Grid.Row="12" Stroke="White" Fill="White" Margin="0.062,0,0,-0.001" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin"/>
                <Rectangle Grid.Column="2" Fill="White" Grid.Row="7" Stroke="White" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin"/>
                <Rectangle Grid.Column="12" Fill="White" Grid.Row="7" Stroke="White" Margin="0.25,0,0,0" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin"/>
                <Border Grid.Column="6" Grid.Row="3" Grid.ColumnSpan="3" >
                    <TextBlock TextWrapping="Wrap" Text="NE" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <Border Grid.Column="3" Grid.Row="6"  Grid.RowSpan="3" Margin="-3,-8,-10,-10">
                    <TextBlock TextWrapping="Wrap" Text="NW" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Center">
                        <TextBlock.RenderTransform>
                            <TransformGroup>
                                <ScaleTransform/>
                                <SkewTransform/>
                                <RotateTransform Angle="270"/>
                                <TranslateTransform/>
                            </TransformGroup>
                        </TextBlock.RenderTransform>
                    </TextBlock>
                </Border>
                <Border Grid.Column="11" Grid.Row="6" Grid.RowSpan="3" RenderTransformOrigin="0.5,0.5" Margin="-3.182,0.589,-1.818,-0.589">
                    <Border.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform/>
                            <SkewTransform/>
                            <RotateTransform Angle="270"/>
                            <TranslateTransform/>
                        </TransformGroup>
                    </Border.RenderTransform>
                    <TextBlock TextWrapping="Wrap" Text="SE" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <Border Margin="-6.513,-9.002,-8.487,-0.998"  Grid.Column="6" Grid.Row="11" Grid.ColumnSpan="3" Grid.RowSpan="3">
                    <TextBlock TextWrapping="Wrap" Text="SW" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <Border Grid.ColumnSpan="3" Grid.Column="6" Grid.Row="4">
                    <TextBlock TextWrapping="Wrap" Text="东&#xA;北" VerticalAlignment="Bottom" HorizontalAlignment="Center"/>
                </Border>
                <Border Grid.Column="4" Grid.Row="6" Grid.RowSpan="3" Height="30.098" Margin="0,1.902,0,0">
                    <TextBlock TextWrapping="Wrap" Text="西 北 " VerticalAlignment="Center" HorizontalAlignment="Right" RenderTransformOrigin="0.5,0.5"/>
                </Border>
                <Border Grid.ColumnSpan="3" Grid.Column="6" Grid.Row="10" Width="28.5">
                    <TextBlock TextWrapping="Wrap" Text="西&#xA;南" VerticalAlignment="Top" HorizontalAlignment="Center"/>
                </Border>
                <Border Grid.Column="10" Grid.Row="6" Grid.RowSpan="3">
                    <TextBlock TextWrapping="Wrap" Text=" 东 南" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left" VerticalAlignment="Center"/>

                </Border>

            </Grid>
            <Grid Width="300" Height="300" RenderTransformOrigin="0.5,0.5" Grid.RowSpan="3" Grid.ColumnSpan="3">
                <Grid.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform/>
                        <SkewTransform/>
                        <RotateTransform Angle="67.5"/>
                        <TranslateTransform/>
                    </TransformGroup>
                </Grid.RenderTransform>
                <Grid.ColumnDefinitions>
                    <!--外圈-->
                    <ColumnDefinition Width="25"/>
                    <ColumnDefinition Width="3"/>
                    <ColumnDefinition Width="5"/>
                    <ColumnDefinition Width="12"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="30"/>
                    <ColumnDefinition Width="20"/>
                    <ColumnDefinition Width="2"/>
                    <ColumnDefinition Width="20"/>
                    <ColumnDefinition Width="30"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="12"/>
                    <ColumnDefinition Width="5"/>
                    <ColumnDefinition Width="3"/>
                    <ColumnDefinition Width="25"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="25"/>
                    <RowDefinition Height="3"/>
                    <RowDefinition Height="5" />
                    <RowDefinition Height="12"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="30"/>
                    <RowDefinition Height="20"/>
                    <RowDefinition Height="2"/>
                    <RowDefinition Height="20"/>
                    <RowDefinition Height="30" />
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="12"/>
                    <RowDefinition Height="5"/>
                    <RowDefinition Height="3"/>
                    <RowDefinition Height="25"/>
                </Grid.RowDefinitions>
                <Border Grid.Column="6"  Grid.ColumnSpan="3">
                    <TextBlock TextWrapping="Wrap" Text="67.5°" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <Border   Grid.Row="6" Grid.RowSpan="3" Margin="1.201,0,0,0">
                    <TextBlock TextWrapping="Wrap" Text="337.5°" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="-5,0">
                        <TextBlock.RenderTransform>
                            <TransformGroup>
                                <ScaleTransform/>
                                <SkewTransform/>
                                <RotateTransform Angle="270"/>
                                <TranslateTransform/>
                            </TransformGroup>
                        </TextBlock.RenderTransform>
                    </TextBlock>
                </Border>
                <Border   Grid.Row="14" Grid.ColumnSpan="3" Grid.Column="6">
                    <TextBlock TextWrapping="Wrap" Text="247.5°" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <Border   Grid.Row="6" Grid.Column="14" Grid.RowSpan="3">
                    <TextBlock TextWrapping="Wrap" Text="157.5°" RenderTransformOrigin="0.5,0.5" VerticalAlignment="Center" Margin="-5,0" HorizontalAlignment="Center">
                        <TextBlock.RenderTransform>
                            <TransformGroup>
                                <ScaleTransform/>
                                <SkewTransform/>
                                <RotateTransform Angle="270"/>
                                <TranslateTransform/>
                            </TransformGroup>
                        </TextBlock.RenderTransform>
                    </TextBlock>
                </Border>
                <Rectangle Grid.Column="7" Margin="0.062,0,0,-0.25" Grid.Row="2" Stroke="White" Fill="White" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin"/>
                <Rectangle Grid.Column="7" Grid.Row="12" Stroke="White" Fill="White" Margin="0.062,0,0,-0.001" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin"/>
                <Rectangle Grid.Column="2" Fill="White" Grid.Row="7" Stroke="White" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin"/>
                <Rectangle Grid.Column="12" Fill="White" Grid.Row="7" Stroke="White" Margin="0.25,0,0,0" d:LayoutOverrides="LeftMargin, RightMargin, TopMargin, BottomMargin"/>
                <Border Grid.Column="6" Grid.Row="3" Grid.ColumnSpan="3" >
                    <TextBlock TextWrapping="Wrap" Text="ENE" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <Border Grid.Row="6" Margin="-3,-8,-10,-10" Grid.RowSpan="3" Grid.ColumnSpan="3" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" >
                    <TextBlock TextWrapping="Wrap" Text="NNW" RenderTransformOrigin="0.5,0.5" d:LayoutOverrides="Height">
                        <TextBlock.RenderTransform>
                            <TransformGroup>
                                <ScaleTransform/>
                                <SkewTransform/>
                                <RotateTransform Angle="270"/>
                                <TranslateTransform/>
                            </TransformGroup>
                        </TextBlock.RenderTransform>
                    </TextBlock>
                </Border>
                <Border Margin="-6.075,4.789,1.315,5.21"  Grid.Column="11" Grid.Row="6" Height="32" Grid.RowSpan="3" RenderTransformOrigin="0.5,0.5" Grid.ColumnSpan="3">
                    <Border.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform/>
                            <SkewTransform/>
                            <RotateTransform Angle="270"/>
                            <TranslateTransform/>
                        </TransformGroup>
                    </Border.RenderTransform>
                    <TextBlock TextWrapping="Wrap" Text="SSE" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <Border Margin="-6.619,-12.909,-8.381,-2.091"  Grid.Column="6" Grid.Row="11" Grid.ColumnSpan="3" Grid.RowSpan="3">
                    <TextBlock TextWrapping="Wrap" Text="WSW" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                </Border>
                <Border Grid.ColumnSpan="3" Grid.Column="6" Grid.Row="4">
                    <TextBlock TextWrapping="Wrap" Text="东&#xA;东&#xA;北" VerticalAlignment="Bottom" HorizontalAlignment="Center"/>
                </Border>
                <Border Grid.Column="4" Grid.Row="6" Grid.RowSpan="3" Height="30.098" Margin="0,1.902,0,0">
                    <TextBlock TextWrapping="Wrap" Text="北 西 北 " VerticalAlignment="Center" HorizontalAlignment="Right" RenderTransformOrigin="0.5,0.5"/>
                </Border>
                <Border Grid.ColumnSpan="3" Grid.Column="6" Grid.Row="10" Width="28.5">
                    <TextBlock TextWrapping="Wrap" Text="西&#xA;西&#xA;南" VerticalAlignment="Top" HorizontalAlignment="Center"/>
                </Border>
                <Border Grid.Column="10" Grid.Row="6" Grid.RowSpan="3">
                    <TextBlock TextWrapping="Wrap" Text=" 南 东 南" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left" VerticalAlignment="Center"/>
                </Border>
            </Grid>
            <Path x:Name="PathFillColor" Fill="#FFBF3232" Stretch="Fill" Data="M0,200 L20,50 L55,50 L80,200" RenderTransformOrigin="0.5,0.74" Margin="-0.585,63.417,-0.639,-28.409"  Grid.RowSpan="2" Grid.Column="1" d:LayoutOverrides="HorizontalAlignment"  >
                <Path.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform/>
                        <SkewTransform/>
                        <RotateTransform Angle="{Binding ElementName=slider, Path=Value, Mode=OneWay}"/>
                        <TranslateTransform/>
                    </TransformGroup>
                </Path.RenderTransform>
            </Path>
            <Ellipse Fill="#FFFFDBDB" Stroke="#FFFFDBDB" Grid.Row="1" Grid.Column="1"/>
        </Grid>
        <Slider x:Name="slider" Value="100" Height="37.333" Margin="-51.945,112.948,0,0" Width="204.778" RenderTransformOrigin="0.5,0.5" Maximum="360" HorizontalAlignment="Left" VerticalAlignment="Top">
            <Slider.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform Angle="90"/>
                    <TranslateTransform/>
                </TransformGroup>
            </Slider.RenderTransform>
        </Slider>
    </Grid>
</Window>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF(Windows Presentation Foundation)是微软推出的一种用于创建Windows应用程序的框架。在WPF中,我们可以通过自定义输入键盘来实现用户输入的个性化。 首先,我们需要创建一个新的WPF用户控件,该控件将用于自定义输入键盘的显示和交互。在该控件中,我们可以添加按钮、文本框和其他UI元素来构建我们想要的键盘布局。 接着,我们可以为每个按钮绑定相应的命令或事件处理程序。例如,我们可以为数字按钮添加点击事件,使其在文本框中显示相应的数字字符。 同时,我们还可以借助WPF中的命令绑定机制,为键盘按钮添加更复杂的功能。例如,我们可以使用命令绑定将Shift按钮与大写字母绑定,使用户可以通过点击Shift按钮来切换字母的大小写。 此外,我们还可以使用WPF的样式和模板功能来美化自定义输入键盘的外观。通过为按钮和键盘控件定义相应的样式和模板,我们可以实现各种特效和动画效果,提升用户体验。 最后,我们需要在应用程序中将自定义输入键盘添加到相应的界面或窗口中。可以通过在XAML中引用我们创建的自定义输入键盘控件,或者在代码中动态地将其添加到用户界面中。 总之,通过WPF的强大功能,我们可以灵活地定制和实现自定义输入键盘,以满足不同应用场景和用户需求。这使得用户在使用WPF应用程序时可以得到更方便、个性化的输入体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值