C# 是否可以重新加载UserControl的XAML属性?
我在XAML中有一些框架元素,我定义了一些属性,比如背景和光标 在代码隐藏中,我更改这些属性,当事件触发时,我希望重新加载XAML中定义的这些初始属性。这是可能的还是我需要在代码隐藏中手动重拨C# 是否可以重新加载UserControl的XAML属性?,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我在XAML中有一些框架元素,我定义了一些属性,比如背景和光标 在代码隐藏中,我更改这些属性,当事件触发时,我希望重新加载XAML中定义的这些初始属性。这是可能的还是我需要在代码隐藏中手动重拨 谢谢。XAML中定义的控件实际上是在定义实例。拥有实例后,该对象与您处理的所有其他对象一样。在代码隐藏中访问XAML中定义的实例类似于在代码隐藏中创建一个新对象,然后在运行时调整其属性 当您希望更改属性值时;您不需要恢复您的属性更改,只需将它们更改为您想要的内容。我建议查看DataTriggers,根据某
谢谢。XAML中定义的控件实际上是在定义实例。拥有实例后,该对象与您处理的所有其他对象一样。在代码隐藏中访问XAML中定义的实例类似于在代码隐藏中创建一个新对象,然后在运行时调整其属性
当您希望更改属性值时;您不需要恢复您的属性更改,只需将它们更改为您想要的内容。我建议查看
DataTriggers
,根据某些值进行临时更改。这将在特定条件为true时更改属性的值,并在条件为false时将其恢复为原始值
例如,下面的样式将在加载时将光标更改为等待光标,如果无效,则将背景更改为红色
<Style TargetType="{x:Type local:MyUserControl}">
<Setter Property="Cursor" Value="Arrow" />
<Setter Property="Background" Value="White" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsLoading}" Value="True">
<Setter Property="Cursor" Value="Wait" />
</DataTrigger>
<DataTrigger Binding="{Binding IsValid}" Value="True">
<Setter Property="Background" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
当然,您必须在UserControl后面定义IsLoading
和IsValid
属性,并在代码隐藏中的适当时间将它们设置为true/false