如果想用Google搜包含冒号
![](/icons/26466de.gif)
![](/icons/26466zifu.gif)
原来
![](/icons/26466dou.gif)
这世道
![](/icons/26466dou.gif)
![](/icons/26466dou.gif)
![](/icons/26466chengxu.gif)
![](/icons/26466dou.gif)
正文:
从第
![](/icons/26466yi.gif)
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
![](/icons/26466yi.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466yi.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466yi.gif)
![](/icons/26466dou2.gif)
首先
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
大家都知道
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466chengxu.gif)
![](/icons/26466chengxu.gif)
![](/icons/26466dou2.gif)
![](/icons/26466dou.gif)
![](/icons/26466chengxu.gif)
![](/icons/26466yi.gif)
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466chengxu.gif)
![](/icons/26466dou2.gif)
.NET的所以支持这种劈开写
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466dou2.gif)
// For UI
public partial
![](/icons/26466class.gif)
{
Color bodyColor;
Color windowColor;
Polygon door;
Polygon seat;
}
// For logic
public partial
![](/icons/26466class.gif)
{
public void Accelerate
![](/icons/26466kh.gif)
public void Break
![](/icons/26466kh.gif)
}
public
![](/icons/26466class.gif)
{
// UI
Color bodyColor;
Color windowColor;
Polygon door;
Polygon seat;
// logic
public void Accelerate
![](/icons/26466kh.gif)
public void Break
![](/icons/26466kh.gif)
}
实际效果是完全
![](/icons/26466yi.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
![](/icons/26466dou2.gif)
劈开
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466dou.gif)
![](/icons/26466dou2.gif)
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
![](/icons/26466dou.gif)
![](/icons/26466dou2.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
有了XAML和将XAML解析为C#/VB
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466chengxu.gif)
![](/icons/26466dou2.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
Name揭秘
下面让我们把目光集中在XAML->C#
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
让我们看
![](/icons/26466yi.gif)
<Window x:Class="WpfApplication2.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="100" Width="300" Background="SteelBlue">
<StackPanel>
<TextBox Name="textBox1"/>
<TextBox Name="textBox2"/>
<Button Content="Show Name" Click="Button_Click"/>
</StackPanel>
<x:Code>
<![CDATA[
private void Button_Click(object sender, RoutedEventArgs e)
{
Button btn = e.OriginalSource as Button;
textBox1.Text = btn.Name;
textBox2.Name = "Made_in_China";
textBox2.Text = textBox2.Name;
}
]]>
</x:Code>
</Window>
运行结果是:
我用XAML定义了 3个UI元素
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466dou.gif)
![](/icons/26466chengxu.gif)
不难看出
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
通过上面
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
1. 告诉XAML解析器为设置了Name
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
2. 将XAML元素对应
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
注意
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
让我们再挖深点儿——TextBox
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466yi.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466de.gif)
![](/icons/26466yi.gif)
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466diaoyong.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466de.gif)
![](/icons/26466chengxu.gif)
![](/icons/26466yi.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466yi.gif)
![](/icons/26466dou2.gif)
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
<Window x:Class="WpfApplication2.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="100" Width="300" Background="SteelBlue">
<StackPanel>
<TextBox Name="textBox1"/>
<TextBox Name="textBox2"/>
<Button Content="Show Name" Click="Button_Click"/>
</StackPanel>
<x:Code>
<![CDATA[
private void Button_Click(object sender, RoutedEventArgs e)
{
textBox2.Name = "Made_in_China";
//this.RegisterName("Made_in_China", this.textBox2);
TextBox t = this.FindName("Made_in_China") as TextBox;
![](/icons/26466if.gif)
![](/icons/26466dd.gif)
{
![](/icons/26466return.gif)
}
![](/icons/26466else.gif)
{
MessageBox.Show("OK");
}
}
]]>
</x:Code>
</Window>
注意
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466dou.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466dou2.gif)
我知道这段话挺拗口
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
最后再啰嗦
![](/icons/26466yi.gif)
![](/icons/26466yinwei.gif)
![](/icons/26466yi.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466dou.gif)
![](/icons/26466dou2.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
[RuntimeNamePropertyAttribute("Name")]
[StyleTypedPropertyAttribute(Property = "FocusVisualStyle", StyleTargetType = typeof(Control))]
[XmlLangPropertyAttribute("Language")]
public
![](/icons/26466class.gif)
IFrameworkInputElement, IInputElement, ISupportInitialize
{
//...
}
x:Name揭秘
x:Name
![](/icons/26466de.gif)
![](/icons/26466yi.gif)
![](/icons/26466dou.gif)
![](/icons/26466dou2.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml
这个x就是XAML
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466dou.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
可见
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
如果我们把上面代码中
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
不知道XAML中标有x:
![](/icons/26466de.gif)
![](/icons/26466yi.gif)
![](/icons/26466dou2.gif)
Name和x:Name关系揭秘
不过
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
![](/icons/26466yi.gif)
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
大胆设想
![](/icons/26466yi.gif)
![](/icons/26466dou.gif)
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466diaoyong.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466dou.gif)
![](/icons/26466diaoyong.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
这样
![](/icons/26466de.gif)
![](/icons/26466yi.gif)
![](/icons/26466dou2.gif)
在x:Name
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
Under the standard build configuration for a WPF application project that uses XAML, partial
![](/icons/26466class.gif)
![](/icons/26466if.gif)
而在FrameworkElement.Name属性
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
This property essentially provides a WPF framework-level convenience property to
![](/icons/26466set.gif)
也就是说
![](/icons/26466dou.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466dou2.gif)
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
貌似“Under the standard build configuration ”这句话有点玄机
![](/icons/26466dou2.gif)
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
不喜欢这种风格
![](/icons/26466de.gif)
![](/icons/26466diaoyong.gif)
![](/icons/26466dou.gif)
![](/icons/26466dou2.gif)
有关在XAML中使用同
![](/icons/26466yi.gif)
![](/icons/26466chengxu.gif)
![](/icons/26466de.gif)
说到“先有鸡还是先有蛋”
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
![](/icons/26466de.gif)
假设我有这样
![](/icons/26466yi.gif)
![](/icons/26466dou.gif)
现在我想把MyControl用在我
![](/icons/26466de.gif)
![](/icons/26466dou2.gif)
<Window x:Class="WpfApplication.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-
![](/icons/26466namespace.gif)
Title="Window1" Height="300" Width="300">
<Grid>
<local:MyControl Name="myControl"/>
</Grid>
</Window>
当编译
![](/icons/26466de.gif)
![](/icons/26466dou.gif)
![](/icons/26466cuowu.gif)
最让人哭笑不得
![](/icons/26466de.gif)
![](/icons/26466yinwei.gif)
![](/icons/26466yi.gif)
![](/icons/26466chengxu.gif)
![](/icons/26466dou.gif)
![](/icons/26466yi.gif)
![](/icons/26466chengxu.gif)
最新评论