Wpf 应用x:key和x:Name
我不熟悉windows phone编程。如果问题太简单,请道歉 有人能说在什么情况下我应该使用x:Key元素和x:Name元素吗 这两者的区别是什么Wpf 应用x:key和x:Name,wpf,windows,xaml,windows-phone,Wpf,Windows,Xaml,Windows Phone,我不熟悉windows phone编程。如果问题太简单,请道歉 有人能说在什么情况下我应该使用x:Key元素和x:Name元素吗 这两者的区别是什么 x:Key 需要在ResourceDictionary中定义元素时使用 例如:您不想在xaml中初始化的样式或某些元素 <Style TargetType=Button x:Key="MyBtnStyle> ...... <myLocalNs:MyType x:Key="MyTyp
x:Key
需要在ResourceDictionary中定义元素时使用
例如:您不想在xaml中初始化的样式或某些元素
<Style TargetType=Button x:Key="MyBtnStyle>
......
<myLocalNs:MyType x:Key="MyType1" />
当您不想从代码隐藏中引用元素时,将使用:
<UserControl>
<Grid x:Name="grid">
<Button x:Name="btn" />
</Grid>
</UserControl>
使用x:Name的另一种情况是,通过触发器将ControlTemplate/DataTemplate/Style中的元素作为目标,使用TargetName
例如:
<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>
另一种情况是不希望绑定到XAML中的元素
<UserControl>
<Grid x:Name="grid">
<Button x:Name="btn" Content="{Binding ElementName=grid ,Path=Name}"/>
</Grid>
</UserControl>
仅供参考,x:Name在您希望使用交互触发器或VisualState以元素为目标时也会使用
需要在ResourceDictionary中定义元素时使用
例如:您不想在xaml中初始化的样式或某些元素
<Style TargetType=Button x:Key="MyBtnStyle>
......
<myLocalNs:MyType x:Key="MyType1" />
当您不想从代码隐藏中引用元素时,将使用:
<UserControl>
<Grid x:Name="grid">
<Button x:Name="btn" />
</Grid>
</UserControl>
使用x:Name的另一种情况是,通过触发器将ControlTemplate/DataTemplate/Style中的元素作为目标,使用TargetName
例如:
<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>
另一种情况是不希望绑定到XAML中的元素
<UserControl>
<Grid x:Name="grid">
<Button x:Name="btn" Content="{Binding ElementName=grid ,Path=Name}"/>
</Grid>
</UserControl>
仅供参考,x:Name在您希望使用交互触发器或VisualState以元素为目标时也会使用