您可以使用附加的行为,这里是非常简单(哑)版本:
public class MyBevavior
{
public static bool GetProperty(DependencyObject obj) => (bool)obj.GetValue(PropertyProperty);
public static void SetProperty(DependencyObject obj, bool value) => obj.SetValue(PropertyProperty, value);
public static readonly DependencyProperty PropertyProperty =
DependencyProperty.RegisterAttached("Property", typeof(bool), typeof(Class), new PropertyMetadata(false, (d, e) =>
{
LocalizeDictionary.SetDesignCulture(d, "en");
ResxLocalizationProvider.SetDefaultAssembly(d, "WPF.Common");
ResxLocalizationProvider.SetDefaultDictionary(d, "global")
}));
}
然后XAML成为短:
<Window local:MyBehavior.Property="true" ...>
...
注,您可以使用一些有意义的参数进行配置。在目前的形式下,它是bool
,这很愚蠢,或许通过en
作为string
是合理的。
或者您可以为所有视图制作基本类型,例如MyWindow
,你在那里设置构造函数。
或者您可以将其移动到每个窗口的OnLoad
事件中。
设置其他附加属性的附加行为。 – Sinatr
谢谢@Sinatr的答案。但抱歉,我不明白你,我是WPF新手。你能举个例子或者更好的解释吗? –