1. 使用方式
<Window x:Class="InlineCodeInXaml.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="100"
Height="80"
mc:Ignorable="d">
<Button Margin="5" Click="Clicked">Click Me!</Button>
<x:Code>
<![CDATA[
void Clicked(object sender, RoutedEventArgs e)
{
System.Windows.MessageBox.Show("按钮被点击!");
}]]>
</x:Code>
</Window>
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/627dc56fad12b1b3706af9fd30a0d98f.png)
2. 注意事项
- 代码必须被
<CDATA[...]]>
结构包含 - 被包含的代码将被转换成当前
XAML
所生成分布类同级的分布类,最终与XAML
分布类,后台分布类进行合并 - 仅能使用当前
XAML
文件的默认XAML默认名称空间
对CLR类型的映射 - 由于不能使用
using
语句,需要完整限定名称 - 由于代码被转换成分布类,因此不能定义超过分布类范畴的内容
3. 在XAML中定义变量,后台代码中使用
<Window x:Class="InlineCodeInXaml.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="100"
Height="80"
mc:Ignorable="d">
<Button Margin="5" Click="Clicked">Click Me!</Button>
<x:Code>
<![CDATA[
private int abc;
void Clicked(object sender, RoutedEventArgs e)
{
System.Windows.MessageBox.Show($"按钮被点击!abs is {this.abc}");
}]]>
</x:Code>
</Window>
using System.Windows;
namespace InlineCodeInXaml
{
public partial class MainWindow : Window
{
public MainWindow()
{
this.InitializeComponent();
this.abc = 123;
}
}
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/862dd08d1ecf5502ffbaab88bf92adf0.png)