MENU

系统学习一下 WPF

• September 12, 2023 • 编程心得阅读设置

随着在 Avalonia 项目上凭感觉来编写应用越来越吃力,决定来系统学习一下 .NET 领域知识。对于 C# 语言及其特性,根据网上的建议是购买了一本《C# 7.0 图解教程》(Illustrate C# 7.0),确实读起来体验很好。然后关于 WPF 的部分,前辈推荐了刘铁猛的《深入浅出 WPF》,目前刚读完前四章,主要都是 XAML 的部分。正好许久未写博客,把对这一小部分有意思的地方用我个人的理解进行一下浅薄的总结。

1694509053320.jpg

《深入浅出 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>

在 XAML 文件内混用 C# 代码