WPF编程,一些常用的操作方法。

1、WPF事件中的sender就是事件源

可以看到wpf中所有的事件都是这个格式:

    private void btnTest_Click(object sender, RoutedEventArgs e)
  {
           Button btn = (Button)sender;
           btn.Content = "i am the soure contrl";
  }

其中的sender 指的是事件源,也就是触发该事件的控件

 

2、WPF的窗体设置WindowStyle=none时,如何移动窗体

1. 在WPF中当将主窗体的WindowStyle设置为none时,使用鼠标移动不了窗体

2. 解决方法:

   2.1. 在Windows的Load方法中增加一下代码:

1

2

3

4

private void Window_Loaded(object sender, RoutedEventArgs e)

{

       this.MouseDown += delegate { DragMove(); };

}

 2.2. 重写主窗体的 OnMouseLefButtonDown()方法:

1

2

3

4

5

6

7

protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)

 {

            base.OnMouseLeftButtonDown(e);

            this.DragMove();

 }

 

3、WPF的菜单栏,工具栏的简单使用

    <Grid>
        <DockPanel><!--停靠布局,让菜单栏和工具栏位于窗口顶部-->
            <Menu DockPanel.Dock="Top">
                <MenuItem Header="File"><!--菜单项为MenuItem,文字使用属性 Header-->
                    <MenuItem Name="menuOpen" Header="Open" Click="menuOpen_Click"></MenuItem>
                    <MenuItem Header="Save"></MenuItem>
                    <MenuItem Header="Delete"></MenuItem>
                </MenuItem>
                <MenuItem Header="Edit"></MenuItem>
                <MenuItem Header="View"></MenuItem>
                <MenuItem Header="About"></MenuItem>
            </Menu>
            <ToolBar DockPanel.Dock="Top"><!--ToolBar和StatusBar就是一个容器-->
                <Button Content="Save"></Button>
                <Button Content="SaveAll"></Button>
                <Button Content="FileExplorer"></Button>
                <Button Content="Start"></Button>
                <Button Content="Test"></Button>
            </ToolBar>
            <TextBox DockPanel.Dock="Top" Text="This is my space" Height="243"></TextBox>
            <StatusBar DockPanel.Dock="Bottom">
                <TextBlock Text="statusBar"></TextBlock>
            </StatusBar>
        </DockPanel>
    </Grid>

 

 

4、Visual Studio中修改项目的输出目录

1. 如在Solution中的项目名称为 ProjectA

    但在本地目录显示却想换成: MyProject

2. 应该做的修改是:

    2.1. 将本地目录的 ProjectA手动修改成 MyProject

    2.2. 用文本编辑器打开 .sln文件,找到类似这样的信息

                Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectA", "ProjectA\ProjectA.csproj", "{7EE79488-BF06-4270-9710-664E1086426C}"

       修改为:

               Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectA", "MyProject\ProjectA.csproj", "{7EE79488-BF06-4270-9710-664E1086426C}"

     然后Rebuild一下就OK了

 

5、WPF设置动画在控件载入时就立刻执行

<控件名.Triggers>
    <EventTrigger RoutedEvent="控件名.Loaded"> 
        <BeginStoryboard>
          <Storyboard>
            <DoubleAnimation Storyboard.TargetProperty="Width" From="0" To="150" Duration="0:0:5" />
            <DoubleAnimation Storyboard.TargetProperty="Height" From="0" To="100" Duration="0:0:5" />
          </Storyboard>
        </BeginStoryboard>
    </EventTrigger>
</控件名.Triggers>

 

6、使用Rectangle+ImageBrush来代替Image,解决图片模糊的问题

<Rectangle Margin="0" Stroke="Black" HorizontalAlignment="Right" Width="151.5" Grid.Row="1" StrokeThickness="0">
     <Rectangle.Fill>
          <ImageBrush ImageSource="skin/logo.png" Stretch="Uniform"/>
     </Rectangle.Fill>
</Rectangle>
 

 

 

7、WPF中使用RenderTransformOrigin来控制动画的起点

Render :渲染;Transform:动画;Origin:起点

RenderTransformOrigin:渲染动画的起点

取值为一个坐标的形式  取值范围: 0,0 到 1,1

0,0:表示左上角,如此设置后动画会以左上角为基准点开始;

0.5,0.5:表示中心;

1,1:表示右下角;

RenderTransformOrigin="0.5,0.5"

 

8、WPF的DispatcherTimer--定时器的使用

         public MainWindow()
        {
            InitializeComponent();
             DispatcherTimer dispatcherTimer = new DispatcherTimer();
            dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
            dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
            dispatcherTimer.Start();
        }

         

        private void dispatcherTimer_Tick(object sender, EventArgs e)
        {
           //这里是要定时执行的方法
        }

9、WPF解决当ScrollViewer中嵌套ItemsControl时,不能使用鼠标来滚动翻页

ScrollViewer:滚动条容器,当内容超过指定的长度和宽度后,就会出现滚动条,而且可以使用鼠标中键来滚动。

当ScrollViewer中包含ItemsControl时,因为ItemsControl自身也有滚动的功能,所以在ListBox的元素区域中使用鼠标滚轮无效,

但在两个ListBox的交界处还是有效果的,所以我们需要做的,就是讲ListBox的滚动事件与外层的ScrollViewer的滚动关联起来。

代码中使用了FrameworkElement类型的参数,因为这个方法的作用是让内层的ListBox与外层的ScrollViewer关联起来,但当两

者之间还有别的元素时,这个方法的参数应该传入的是ScrollViewer的直接子元素,而不是深层的ListBox。

        public MainWindow()
        {
            InitializeComponent();
            UseTheScrollViewerScrolling(外层控件);
        }

        public void UseTheScrollViewerScrolling(FrameworkElement fElement)
        {
            fElement.PreviewMouseWheel += (sender, e) =>
            {
                var eventArg = new MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta);
                eventArg.RoutedEvent = UIElement.MouseWheelEvent;
                eventArg.Source = sender;
                fElement.RaiseEvent(eventArg);
            };
        }

 

 

10、WPF获取程序版本号(Version)的方法

1.第一种:通过System来获取

  public static Version GetEdition()
  {
      return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
  }  

2.第二种:通过Application来获取

Application.ResourceAssembly.GetName().Version.ToString();

 

 

11、WPF在XAML中使用MultiBinding的两个例子

使用MultiBinding的原则:数据源有一个以上

1. 需求:在一个需要显示的内容中,不同的部分要进行的处理不一样,这时可以使用MultiBinding

<TextBlock>
     <TextBlock.Text>
         <MultiBinding StringFormat="{}{0} {1} {2}">
            <Binding Path="DownloadViewModel.TotalDeviceCount" />
             <Binding Path="Language" Converter="{StaticResource LanConverter}" ConverterParameter="Problem"/>
              <Binding Path="DownloadViewModel.TotalDeviceCount" Converter="{StaticResource NumToPluralConverter}" ConverterParameter="Driver" />
          </MultiBinding>
     </TextBlock.Text>
 </TextBlock>

 

 

12、WPF中使用TextBlock的Inlines属性来完成复杂的文字内容

. 需求:要在一行内容中显示不同颜色以及粗细不一的字体,

https://blog.csdn.net/zhangjiyehandsom/article/details/5498845

 

13、WPF中List的Add()与Insert()方法的区别

public void Add(T item); 可以看出,Add方法只可接受一个参数,而且加入的元素会按加入的顺序进行排序,

如依次往List中Add(), 7 8 9 那么结果就是 {7, 8, 9}

public void Insert(int index, T item); 该方法接受两个参数,第一个为下标,第二个为要添加的元素

需求: 要求往List中添加数据,而且后面加的数据始终要排在第一的位置,

 添加 5 6 7 8 9,通过Insert(0, number), 这里的0就代表第一个位置,那么结果为{9, 8, 7, 6, 5}

 

14、WPF将TextBox的边框设为圆角的

方法一、CornerRadius="5"

       <Border CornerRadius="5"
                Height="35" 
                BorderThickness="1"
                BorderBrush="#FF737070">
            <TextBox Height="32"
                     Name="textBox1"
                     Width="156"
                     Background="{x:Null}"
                     BorderThickness="0"
                     FontSize="22" />
        </Border>

方法二、通过资源定义

    <Window.Resources>
        <Style x:Key="RoundCornerTextStyle"
               TargetType="{x:Type TextBox}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type TextBox}">
                        <Border x:Name="border"
                                BorderBrush="{TemplateBinding BorderBrush}"
                                CornerRadius="10"
                                BorderThickness="{TemplateBinding BorderThickness}"
                                Background="{TemplateBinding Background}">
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
        <TextBox Background="White"
                 Width="100"
                 Height="50"
                 Text="我的"
                 Style="{StaticResource RoundCornerTextStyle}">
        </TextBox>

 

15、WPF创建简单的旋转动画

前台
 

<Grid>
        <Rectangle Height="72"
                   HorizontalAlignment="Left"
                   Margin="143,132,0,0"
                   Name="rectangle2"
                   Stroke="Black"
                   VerticalAlignment="Top"
                   Width="101"
                   Fill="#FF967878" />
        <Button Content="Button"
                Height="22"
                HorizontalAlignment="Left"
                Margin="143,45,0,0"
                Name="button1"
                VerticalAlignment="Top"
                Width="75"
                Click="button1_Click" />
    </Grid>

 

后台:

        private void button2_Click(object sender, RoutedEventArgs e)
        {
            RotateTransform rtf = new RotateTransform();
            rectangle2.RenderTransform = rtf;
            DoubleAnimation dbAscending = new DoubleAnimation(0, 360, new Duration(TimeSpan.FromSeconds(1)));
            dbAscending.RepeatBehavior = RepeatBehavior.Forever;
            rtf.BeginAnimation(RotateTransform.AngleProperty, dbAscending);
        }

16、WPF设置控件获取键盘焦点时的样式FocusVisualStyle

    <Window.Resources>
        <!--将获取焦点的样式设置为红色边框-->
        <Style x:Key="newFocusStyle">
            <Setter Property="Control.Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Rectangle Margin="-2" StrokeThickness="1" Stroke="Red"/>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
<Button   FocusVisualStyle="{DynamicResource newFocusStyle}"/>

18、使用DataTrigger来代替Triggerr 

当属性等于某个值,同时鼠标移入时的需求:

<MultiDataTrigger>
     <MultiDataTrigger.Conditions>
           <Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsMouseOver}" Value="True"/>
            <Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsChecked}" Value="True"/>
     </MultiDataTrigger.Conditions>
      <Setter TargetName="LayoutRoot" Property="Background" Value="Red"/>
  </MultiDataTrigger>

19、C#中字节数组(byte[])和字符串相互转换

 转换过程主要使用到System.Text.Encoding命名空间下的类

1. 字符串转换成字节数组byte[]:

string str = "This is test string";
byte[] byteArray = System.Text.Encoding.Default.GetBytes(str);

2.字节数组换成字符串:

byte[] byteArray = 通过某种方式获取到的字节数组
string str = System.Text.Encoding.Default.GetString(byteArray);

20、WPF在XAML中实现持续动画的暂停、恢复、停止

 

1.动画通过EventTrigger监听按钮的FrameworkElement.Loaded事件,但控件载入时就进行动画,

   持续动画通过<BeginStoryboard Name="yourStoryName">下的<Storyboard>或者子动画的RepeatBehavior=Forever来实现,

   鼠标的移入移出,通过监听UIElement.MouseEnter和UIElement.MouseLeave事件,

 鼠标移入时,通过<PauseStoryboard BeginStoryboardName="yourStoryName"/>来暂停动画,

   鼠标移出时,通过<ResumeStoryboard BeginStoryboardName="yourStoryName"/>来恢复动画,具体代码如下:

 

<Button Content="Click Me">
    <Button.Triggers>
        <EventTrigger RoutedEvent="FrameworkElement.Loaded">
            <BeginStoryboard Name="OpacityStoryboard">
                <Storyboard>
                    <DoubleAnimation Storyboard.TargetProperty="(UIElement.Opacity)"
                        From="0" To="1" RepeatBehavior="Forever" AutoReverse="True" />
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
        <EventTrigger RoutedEvent="UIElement.MouseEnter">
            <PauseStoryboard BeginStoryboardName="OpacityStoryboard" />
        </EventTrigger>
        <EventTrigger RoutedEvent="UIElement.MouseLeave">
            <ResumeStoryboard BeginStoryboardName="OpacityStoryboard" />
        </EventTrigger>
    </Button.Triggers>
</Button>

21、C#的OpenFileDialog的简单用法

 

private void btnSelectFile_Click(object sender, EventArgs e)
        {
            openFileDialog1.InitialDirectory = "c:\\";//默认路径,注意这里写路径时要用c:\\而不是c:\
            openFileDialog1.Filter = "XML文件|*.xml";//过滤的文件,以|隔开,如“文本文件|*.*|Java文件|*.java”
            openFileDialog1.RestoreDirectory = true;//但打开对话框后,文件内容有改变了,是否同步刷新
            openFileDialog1.FilterIndex = 1;//当filter有多个时,选择默认的filter,注意,下标时从1开始,如果只有一个filter可以不用写这个属性
            if (openFileDialog1.ShowDialog() == DialogResult.OK)//这个是关键,意思是当你选择了文件后并点击了OK按钮
            {
                lblFilePath.Text = openFileDialog1.FileName;//获取选中文件的路径是通过FileName属性来获得
            }
        }

 22、C#读取excel文件的内容(使用DataSet)

https://www.cnblogs.com/tommy-huang/p/6004928.html

16、WPF创建简单的加载等待动画

复制以下代码加在图中红线部分

    <Window.Resources>
        <Storyboard x:Key="Storyboard1">
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse"
                                           Storyboard.TargetProperty="(UIElement.Opacity)">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:00.1000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:00.5000000"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:01"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           Storyboard.TargetProperty="(UIElement.Opacity)"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse1">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:00.2000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:00.6000000"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.1000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           Storyboard.TargetProperty="(UIElement.Opacity)"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse2">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:00.3000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:00.7000000"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.2000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           Storyboard.TargetProperty="(UIElement.Opacity)"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse3">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:00.4000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:00.8000000"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.3000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           Storyboard.TargetProperty="(UIElement.Opacity)"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse4">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:00.5000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:00.9000000"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.4000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           Storyboard.TargetProperty="(UIElement.Opacity)"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse5">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:00.6000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.5000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           Storyboard.TargetProperty="(UIElement.Opacity)"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse6">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:00.7000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.1000000"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.6000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           Storyboard.TargetProperty="(UIElement.Opacity)"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse7">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:00.8000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.2000000"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.7000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           Storyboard.TargetProperty="(UIElement.Opacity)"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse8">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:00.9000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.3000000"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.8000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           Storyboard.TargetProperty="(UIElement.Opacity)"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse9">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.4000000"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.9000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           Storyboard.TargetProperty="(UIElement.Opacity)"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse10">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.1000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.5000000"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:02"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           Storyboard.TargetProperty="(UIElement.Opacity)"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse11">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.2000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.6000000"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.1000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           Storyboard.TargetProperty="(UIElement.Opacity)"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse12">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.3000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.7000000"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.2000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           Storyboard.TargetProperty="(UIElement.Opacity)"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse13">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.4000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.8000000"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.3000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           Storyboard.TargetProperty="(UIElement.Opacity)"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse14">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.5000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.9000000"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.4000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           Storyboard.TargetProperty="(UIElement.Opacity)"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse15">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.6000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.5000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           Storyboard.TargetProperty="(UIElement.Opacity)"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse16">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.7000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.1000000"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.6000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           Storyboard.TargetProperty="(UIElement.Opacity)"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="ellipse17">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:01.8000000"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.2000000"
                                      Value="1" />
                <SplineDoubleKeyFrame KeyTime="00:00:02.7000000"
                                      Value="0" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="border"
                                           Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:00.5000000"
                                      Value="180" />
                <SplineDoubleKeyFrame KeyTime="00:00:01"
                                      Value="360" />
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
                                           RepeatBehavior="Forever"
                                           Storyboard.TargetName="border1"
                                           Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
                <SplineDoubleKeyFrame KeyTime="00:00:00"
                                      Value="0" />
                <SplineDoubleKeyFrame KeyTime="00:00:02"
                                      Value="180" />
                <SplineDoubleKeyFrame KeyTime="00:00:04"
                                      Value="360" />
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
    </Window.Resources>
    <Window.Triggers>
        <EventTrigger RoutedEvent="FrameworkElement.Loaded">
            <BeginStoryboard Storyboard="{StaticResource Storyboard1}" />
        </EventTrigger>
    </Window.Triggers>
    <Grid x:Name="LayoutRoot"
          Background="Black">
        <Viewbox Width="18"
                 Height="18">
            <Grid HorizontalAlignment="Center"
                  x:Name="loading"
                  Margin="0"
                  VerticalAlignment="Center"
                  Width="3.333"
                  Height="3.333"
                  Visibility="Visible">
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         x:Name="ellipse"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         d:IsHidden="True" />
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         x:Name="ellipse1"
                         d:IsHidden="True">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="20" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         x:Name="ellipse2"
                         d:IsHidden="True">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="40" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         x:Name="ellipse3"
                         d:IsHidden="True">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="60" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         x:Name="ellipse4"
                         d:IsHidden="True">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="80" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         x:Name="ellipse5"
                         d:IsHidden="True">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="100" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         x:Name="ellipse6"
                         d:IsHidden="True">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="120" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         x:Name="ellipse7"
                         d:IsHidden="True">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="140" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         x:Name="ellipse8"
                         d:IsHidden="True">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="160" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         x:Name="ellipse9"
                         d:IsHidden="True">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="180" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         x:Name="ellipse10"
                         d:IsHidden="True">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="200" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         x:Name="ellipse11"
                         d:IsHidden="True">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="220" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         x:Name="ellipse12"
                         d:IsHidden="True">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="240" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         x:Name="ellipse13"
                         d:IsHidden="True">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="260" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         x:Name="ellipse14"
                         d:IsHidden="True">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="280" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         x:Name="ellipse15"
                         d:IsHidden="True">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="300" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         x:Name="ellipse16"
                         d:IsHidden="True">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="320" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Ellipse RenderTransformOrigin="0.468,3.443"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         x:Name="ellipse17"
                         d:IsHidden="True">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="340" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Ellipse RenderTransformOrigin="0.5,0.499"
                         x:Name="ellipse_Copy"
                         Fill="RoyalBlue"
                         Stroke="{x:Null}"
                         Margin="-0.012,0,0.001,-9.67"
                         VerticalAlignment="Bottom"
                         Height="3.344">
                    <Ellipse.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="0" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Ellipse.RenderTransform>
                </Ellipse>
                <Border RenderTransformOrigin="0.492,1.006"
                        Margin="1.081,0,1.086,-8.056"
                        x:Name="border"
                        VerticalAlignment="Bottom"
                        Height="8.622"
                        Background="RoyalBlue"
                        CornerRadius="1,1,0,0">
                    <Border.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="0" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Border.RenderTransform>
                </Border>
                <Border Height="5"
                        Background="RoyalBlue"
                        CornerRadius="1,1,0,0"
                        RenderTransformOrigin="0.496,1.001"
                        Margin="1,0,0.333,-7.667"
                        x:Name="border1"
                        VerticalAlignment="Bottom">
                    <Border.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleX="1"
                                            ScaleY="1" />
                            <SkewTransform AngleX="0"
                                           AngleY="0" />
                            <RotateTransform Angle="0" />
                            <TranslateTransform X="0"
                                                Y="0" />
                        </TransformGroup>
                    </Border.RenderTransform>
                </Border>
            </Grid>
        </Viewbox>
    </Grid>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值