随着在 Avalonia 项目上凭感觉来编写应用越来越吃力,决定来系统学习一下 .NET 领域知识。对于 C# 语言及其特性,根据网上的建议是购买了一本《C# 7.0 图解教程》(Illustrate C# 7.0),确实读起来体验很好。然后关于 WPF 的部分,前辈推荐了刘铁猛的《深入浅出 WPF》,目前刚读完前四章,主要都是 XAML 的部分。正好许久未写博客,把对这一小部分有意思的地方用我个人的理解进行一下浅薄的总结。
《深入浅出 WPF》
C# 的 partial
关键字
在 C++ 等不少 OOP 语言中,类的定义必须要在一次一处直接定义完成,而在 C# 中,可以为一个类添加 partial
关键字,这将使得这个类可以从多处定义,并最后组装成一个合并类(类各部分之间不冲突情况下)。这也是 WPF 中 XAML 的样式设计代码和 C# 的逻辑代码看似被完全分离却又能互相访问的原因。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
partial
关键字的 MainWindow
类在 XAML 内嵌入 C# 代码
使用 <x:Code>
标签可以在 XAML 文件中直接嵌入 C# 代码,而不是在后置的 C# 中编写。当然,此用法非常不赞成使用,因为这会降低代码可读性且不易于调试维护,因此其仅作为特性的一个了解。
<x:Code>
<![CDATA[
private void Button_Clicked(object sender, RoutedEventArgs e)
{
MessageBox.Show("Hello WPF");
}
]]>
</x:Code>