WPF绘图和动画-VisualBrush实例

xiaoxiao2021-02-28  120

《深入浅出WPF》(作者:刘铁猛)之学习笔记

WPF绘图和动画-VisualBrush实例

XAML代码:

<Window x:Class="VisualBrush实例.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:VisualBrush实例" mc:Ignorable="d" Title="MainWindow" Height="300" Width="400"> <Grid Margin="10"> <Grid.ColumnDefinitions> <ColumnDefinition Width="160"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="160"/> </Grid.ColumnDefinitions> <StackPanel x:Name="StackPanelLeft" Background="White"> <Button x:Name="RealButton" Content="OK" Height="40"/> </StackPanel> <Button Content=">>>" Grid.Column="1" Margin="5,0" Click="CloneVisual"/> <StackPanel x:Name="StackPanelRight" Background="White" Grid.Column="2"/> </Grid> </Window>

C#代码 :

using System.Windows; using System.Windows.Media; using System.Windows.Shapes; namespace VisualBrush实例 { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private double _opacity = 1.0;//不透明计数 private void CloneVisual(object sender, RoutedEventArgs e) { var vBrush=new VisualBrush(RealButton); var rect = new Rectangle { Width = RealButton.ActualWidth, Height = RealButton.ActualHeight, Fill = vBrush, Opacity = _opacity }; _opacity -= 0.2; StackPanelRight.Children.Add(rect); } } }

程序设计图:

程序运行图:

转载请注明原文地址: https://www.6miu.com/read-28887.html

最新回复(0)