WPF中的XAML Behaviors(行為)詳解

zhaotianff發表於2024-12-04

什麼是XAML Behaviors(行為)

XAML Behaviors 提供了一種簡單易用的方法,能以最少的程式碼為 Windows UWP/WPF 應用程式新增常用和可重複使用的互動性。

可以透過一個最簡單的示例來感受一下

首先我們引用Microsoft.Xaml.Behaviors.Wpf包,然後新增如下的程式碼。

在下面的程式碼中,我們放置了一個按鈕,然後為按鈕新增了XAML Behavior,當按鈕觸發Click事件時,呼叫ChangPropertyAction去改變控制元件的背景顏色

 1 <Window x:Class="XamlBehaviorsDemo.MainWindow"
 2         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 3         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 4         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
 5         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
 6         xmlns:local="clr-namespace:XamlBehaviorsDemo"
 7         xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
 8         mc:Ignorable="d"
 9         Title="MainWindow" Height="450" Width="800">
10     <Grid>
11         <Button Width="88" Height="28" Content="Click me">
12             <i:Interaction.Triggers>
13                 <i:EventTrigger EventName="Click">
14                     <i:ChangePropertyAction PropertyName="Background">
15                         <i:ChangePropertyAction.Value>
16                             <SolidColorBrush Color="Red"/>
17                         </i:ChangePropertyAction.Value>
18                     </i:ChangePropertyAction>
19                 </i:EventTrigger>
20             </i:Interaction.Triggers>
21         </Button>
22     </Grid>
23 </Window>

在.Net Framework時期,XAML Behaviors包含在Blend SDK中,並且需要手動引用 System.Windows.Interactivity.dll。

我前面的文章中介紹過如何安裝Blend SDK

https://www.cnblogs.com/zhaotianff/p/11714279.html

隨著.NET Core的出現,System.Windows.Interactivity.dll中的功能開始放到開源社群,並且改名為Microsoft-XAML-Behaviors。透過nuget包安裝。

詳情可以參考下面的文章:

https://devblogs.microsoft.com/dotnet/open-sourcing-xaml-behaviors-for-wpf/

以前使用的XAML名稱空間是

1 http://schemas.microsoft.com/expression/2010/interactivity

開源以後使用的XAML名稱空間是

1 http://schemas.microsoft.com/xaml/behaviors

專案地址:

https://github.com/microsoft/XamlBehaviorsWpf

相關文章