首页 > 其他分享 >WPF实现一个简单自定义管道

WPF实现一个简单自定义管道

时间:2022-08-22 10:11:21浏览次数:80  
标签:Pipeline xmlns http 自定义 int 管道 Storyboard WPF public

先看效果

 

 xaml代码

<UserControl x:Class="WPF控件测试.Control.Pipeline"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WPF控件测试.Control"
mc:Ignorable="d"
d:DesignHeight="30" d:DesignWidth="800">
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState x:Name="WELow">
<Storyboard RepeatBehavior="Forever">
<DoubleAnimation Duration="0:0:1" From="0" To="5"
Storyboard.TargetName="flow" Storyboard.TargetProperty="StrokeDashOffset"/>
</Storyboard>
</VisualState>
<VisualState x:Name="EELow">
<Storyboard RepeatBehavior="Forever">
<DoubleAnimation Duration="0:0:1" From="0" To="-5"
Storyboard.TargetName="flow" Storyboard.TargetProperty="StrokeDashOffset"/>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border>
<Border.Background>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#ffcbcbcb" Offset="0.9"/>
<GradientStop Color="#ffffffff" Offset="0.5"/>
<GradientStop Color="#ffcbcbcb" Offset="0.1"/>
</LinearGradientBrush>
</Border.Background>
<Border Margin="2" Name="bord">
<Line X1="0" Y1="0" X2="{Binding ActualWidth, RelativeSource={RelativeSource Self}}" Y2="0" Stroke="#CD5555" StrokeThickness="{Binding ElementName=bord,Path=ActualHeight}"
VerticalAlignment="Center" StrokeDashArray="5" Stretch="UniformToFill" StrokeDashCap="Round" StrokeStartLineCap="Round"
Opacity="0.7" Name="flow"/>
</Border>
</Border>
</Grid>
</UserControl>

cs代码

public partial class Pipeline : UserControl
{
public Pipeline()
{
InitializeComponent();
}


public int Direction
{
get { return (int)GetValue(DirectionProperty); }
set { SetValue(DirectionProperty, value); }
}

// Using a DependencyProperty as the backing store for Direction. This enables animation, styling, binding, etc...
public static readonly DependencyProperty DirectionProperty =
DependencyProperty.Register("Direction", typeof(int), typeof(Pipeline), new PropertyMetadata(default(int),new PropertyChangedCallback(OnDirectionChanged)));

private static void OnDirectionChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
// VisualStateManager.GoToState(d as Pipeline, int.Parse(e.NewValue.ToString()!)==1? "WELow" : "EELow", false);
VisualStateManager.GoToState(d as Pipeline,int.Parse(e.NewValue.ToString()!) == 1 ? "WELow" : "EELow", false);
}
}

 

标签:Pipeline,xmlns,http,自定义,int,管道,Storyboard,WPF,public
From: https://www.cnblogs.com/lisghxfdfgh/p/16611882.html

相关文章

  • 通过 css3 自定义、修改滚动条的样式
    ::-webkit-scrollbar{width:4px!important;background-color:#012d58!important;border-radius:4px!important;}::-web......
  • 博客自定义右键
    相信大家在访问我的网站就发现我的右键已经更换,那么今天就介绍一下我的方法!1.首先在head.ejs内添加:<!--自定义右键--></script><styletype="text/css">a{text-d......
  • 博客园主题推荐awescnb-自定义
    后台-设置博客皮肤:Custom页面定制CSS代码#loading{bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999;background-color:......
  • 三维管道设计软件免费个人版 PipeCAD-1.0.22 发布啦!
    PipeCAD-1.0.22发布啦![email protected],三维管道设计软件,三维工厂设计软件,三维配管软件PipeCAD1.0.22版本发布啦!主要完善螺栓库和等级,完善设备建模......
  • Java学习 (26) 异常篇 异常结构&异常处理&自定义异常
    目录异常结构异常的定义异常的分类ErrorExpectionError和Exception的区别具体讲解视频异常处理捕获异常语法实例抛出异常语法实例具体讲解视频自定义异常具体讲解视频异常......
  • FineReport 自定义工具栏样式
    虽然FR界面的工具栏已经很商业化,很好看了,但是总会有那么些需求希望你可以修改工具栏的样式。修改工具栏样式的主要思路是:通过JQ选择器选中需要调整的元素,然后修改他们的......
  • 向QtableWidget中添加自定义widget崩溃异常: 0xC0000005
    1.问题描述想给QTableWidget添加QCheckBox,代码如下,tableWidget->setCellWidget老是崩溃(0x0F954E63(qwindows.dll)处(位于QStockView.exe中)引发的异常:0xC0000005: ),......
  • 《深入浅出WPF》MVVM视频教材中的实例练习
    前言在学习了《深入浅出WPF》的书籍以及视频之后,将最后的MVVM练习项目从头到尾敲了一遍,以加深自己的理解,也是为了提高自己对基础知识的熟练程度。由于是自己对着示例图自......
  • Java自定义注解
    ​/**作者:呆萌老师*☑csdn认证讲师*☑51cto高级讲师*☑腾讯课堂认证讲师*☑网易云课堂认证讲师*☑华为开发者学堂认证讲师*☑爱奇艺千人名师计划成员*在这里给大......
  • Winform自定义dataGridView
     dataGridView中的自定义表格属性:{width:控件宽度HeaderText:头列名,显示在表的最顶行的文字。Name:列名,通过Name找到这个列的代号。}在这里默认定义成:DataGridVie......