这是我的帖子的延续:
WPF: How to handle multi-XAML UIs? (Follow-Up)
我很好奇abc.xaml
文件与其对应的abc.xaml.cs
之间的父子关系。这种关系是如何实施的?为什么在MSVS中看到另一个/在另一个内部?如何用记事本创建这两个文件?只是用一个共同的基名来命名它们吗?
TIA。
答案 0 :(得分:2)
然而,让我快速向您解释:
使用Visual Studio UserControl
操作在WPF项目中添加Window
或Add -> New Item..
时,Visual Studio会向项目中添加3个文件:
1 - MyUserControl.xaml
是XAML文件,其中包含构成UserControl的XAML。
2 - MyUserControl.xaml.cs
,这是“代码隐藏”文件,定义了从public partial class
派生的System.Windows.Controls.UserControl
,它允许您为与{{{}}的交互创建其他逻辑1}}。
3 - 在封面下,还会生成另一个名为UserControl
的文件。此文件包含与#2相同的类,也定义为MyUserControl.g.i.cs
,并且还包含类中所有partial
的定义,用于给出{{3}的任何相关XAML定义元素}。
这意味着如果您的XAML包含以下内容:
fields
<TextBox x:Name="TextBox1"/>
文件将包含如下声明:
.g.i.cs
此字段的值是通过WPF的内部机制分配的,我现在不会讨论。
底线是您在internal System.Windows.Controls.TextBox TextBox1;
代码后面的代码中编写的代码可能会使用MyUserControl.xaml.cs
中定义的类成员(例如.g.i.cs
),并且由于该文件依赖于XAML文件,因此代码隐藏在文件后面。
这就是为什么代码隐藏文件被设置为x:Name
DependentUpon中的XAML文件,如果你查看TextBox1
文件,看起来像这样:
csproj