中国建设银行网站查询密码是什么意思,杂志网站建设推广方案,wordpress文章网址采集器,绍兴seoWPF开发者QQ群#xff1a; 340500857 | 微信群 - 进入公众号主页 加入组织欢迎转发、分享、点赞、在看#xff0c;谢谢~。 前言效果仿照 CSS聚光灯效果 https://www.jianshu.com/p/6eae322e8e3801—效果预览更多效果请下载源码体验一、SpotLight.cs 代码如下using Syst… WPF开发者QQ群 340500857 | 微信群 - 进入公众号主页 加入组织欢迎转发、分享、点赞、在看谢谢~。 前言 效果仿照 CSS聚光灯效果 https://www.jianshu.com/p/6eae322e8e3801—效果预览更多效果请下载源码体验一、SpotLight.cs 代码如下using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Animation;namespace WPFDevelopers.Controls
{[TemplatePart(Name TextBlockBottomTemplateName, Type typeof(TextBlock))][TemplatePart(Name TextBlockTopTemplateName, Type typeof(TextBlock))][TemplatePart(Name EllipseGeometryTemplateName, Type typeof(EllipseGeometry))]public class SpotLight : Control{private const string TextBlockBottomTemplateName PART_TextBlockBottom;private const string TextBlockTopTemplateName PART_TextBlockTop;private const string EllipseGeometryTemplateName PART_EllipseGeometry;private TextBlock _textBlockBottom, _textBlockTop;private EllipseGeometry _ellipseGeometry;public string Text{get { return (string)GetValue(TextProperty); }set { SetValue(TextProperty, value); }}public static readonly DependencyProperty TextProperty DependencyProperty.Register(Text, typeof(string), typeof(SpotLight), new PropertyMetadata(WPFDevelopers));static SpotLight(){DefaultStyleKeyProperty.OverrideMetadata(typeof(SpotLight), new FrameworkPropertyMetadata(typeof(SpotLight)));}public SpotLight(){this.Loaded SpotLight_Loaded;}private void SpotLight_Loaded(object sender, RoutedEventArgs e){Canvas.SetLeft(_textBlockBottom, ActualWidth / 3);Canvas.SetTop(_textBlockBottom, ActualHeight / 3);Canvas.SetLeft(_textBlockTop, ActualWidth / 3);Canvas.SetTop(_textBlockTop, ActualHeight / 3);}public override void OnApplyTemplate(){base.OnApplyTemplate();_textBlockBottom GetTemplateChild(TextBlockBottomTemplateName) as TextBlock;_textBlockTop GetTemplateChild(TextBlockTopTemplateName) as TextBlock;_ellipseGeometry GetTemplateChild(EllipseGeometryTemplateName) as EllipseGeometry;var center new Point(FontSize/2, FontSize/2); _ellipseGeometry.RadiusX FontSize;_ellipseGeometry.RadiusY FontSize;_ellipseGeometry.Center center;if (_textBlockBottom ! null _textBlockTop ! null _ellipseGeometry ! null)_textBlockTop.Loaded _textBlockTop_Loaded;}private void _textBlockTop_Loaded(object sender, RoutedEventArgs e){var doubleAnimation new DoubleAnimation{To _textBlockTop.ActualWidth,Duration TimeSpan.FromSeconds(3)};Storyboard.SetTarget(doubleAnimation, _textBlockTop);Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath((UIElement.Clip).(EllipseGeometry.Transform).(TranslateTransform.X)));var storyboard new Storyboard{RepeatBehavior RepeatBehavior.Forever,AutoReverse true};storyboard.Children.Add(doubleAnimation);storyboard.Completed (s, q) {};storyboard.Begin();}}
}二、SpotLight.xaml 代码如下ResourceDictionary xmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:controlsclr-namespace:WPFDevelopers.ControlsResourceDictionary.MergedDictionariesResourceDictionary SourceBasic/ControlBasic.xaml//ResourceDictionary.MergedDictionariesStyle TargetType{x:Type controls:SpotLight} BasedOn{StaticResource ControlBasicStyle}Setter PropertyBackground Value#222222/Setter PropertyFontSize Value60/Setter PropertyTemplateSetter.ValueControlTemplate TargetType{x:Type controls:SpotLight}Canvas x:NamePART_Canvas Background{TemplateBinding Background}TextBlock x:NamePART_TextBlockBottom Text{TemplateBinding Text}FontSize{TemplateBinding FontSize} FontFamilyArial BlackFontWeightBold Foreground#323232/TextBlock x:NamePART_TextBlockTop Text{TemplateBinding Text}FontSize{TemplateBinding FontSize} FontFamilyArial BlackFontWeightBoldTextBlock.ForegroundLinearGradientBrush EndPoint1,1 MappingModeRelativeToBoundingBox StartPoint0,0GradientStop Color#FF9C1031 Offset0.1/GradientStop Color#FFBE0E20 Offset0.2/GradientStop Color#FF9C12AC Offset0.7/GradientStop Color#FF0A8DC3 Offset0.8/GradientStop Color#FF1AEBCC Offset1//LinearGradientBrush/TextBlock.ForegroundTextBlock.ClipEllipseGeometry x:NamePART_EllipseGeometryEllipseGeometry.TransformTranslateTransform//EllipseGeometry.Transform/EllipseGeometry/TextBlock.Clip/TextBlock/Canvas/ControlTemplate/Setter.Value/Setter
/Style/ResourceDictionary三、SpotLightExample.Xaml 代码如下UserControl x:ClassWPFDevelopers.Samples.ExampleViews.SpotLightExamplexmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006 xmlns:dhttp://schemas.microsoft.com/expression/blend/2008 xmlns:localclr-namespace:WPFDevelopers.Samples.ExampleViewsxmlns:wpfdevhttps://github.com/yanjinhuagood/WPFDevelopersmc:Ignorabled d:DesignHeight450 d:DesignWidth800UniformGrid Rows2wpfdev:SpotLight FontSize50 TextYanJinHua/wpfdev:SpotLight//UniformGrid
/UserControl源码地址githubhttps://github.com/yanjinhuagood/WPFDevelopers.gitgiteehttps://gitee.com/yanjinhua/WPFDevelopers.gitWPF开发者QQ群 340500857 blogs https://www.cnblogs.com/yanjinhuaGithubhttps://github.com/yanjinhuagood出处https://www.cnblogs.com/yanjinhua版权本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。转载请著名作者 出处 https://github.com/yanjinhuagood