Pra*_*abu 0 windows wpf xaml windows-phone
我是Windows手机编程的新手.如果问题太基础,请道歉.
任何人都可以说在什么情况下我应该使用x:Key元素和x:Name元素?
这两者有什么不同?
x:Key
Run Code Online (Sandbox Code Playgroud)
在需要在ResourceDictionary中定义元素时使用.
例如:你想要在xaml中使用的样式或某个元素.
<Style TargetType=Button x:Key="MyBtnStyle>
......
<myLocalNs:MyType x:Key="MyType1" />
Run Code Online (Sandbox Code Playgroud)
.
x:Name
Run Code Online (Sandbox Code Playgroud)
当您不想参考您的守则背后的元素时将使用:
<UserControl>
<Grid x:Name="grid">
<Button x:Name="btn" />
</Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
在UserControl.cs中:
btn.Contnent = "Im A Button";
grid.RowDefenitions.Add(new RowDefenition());
Run Code Online (Sandbox Code Playgroud)
您将使用x的另一种情况:名称是在使用TargetName通过触发器在ControlTemplate/DataTemplate/Style中定位元素时
例如 :
<DataTemplate DataType="{x:Type h:HierarchicalNode}">
<Grid>
<CheckBox x:Name="chkbox" />
</Grid>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding HasChildren}" Value="False">
<Setter Property="Visibility" Value="Collapsed" TargetName="chkbox"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
另一种情况是你想要绑定到XAML中的元素.
<UserControl>
<Grid x:Name="grid">
<Button x:Name="btn" Content="{Binding ElementName=grid ,Path=Name}"/>
</Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
仅供参考,x:当您想要使用交互触发器或VisualState的目标元素时,也会使用名称.
| 归档时间: |
|
| 查看次数: |
227 次 |
| 最近记录: |