我正在尝试使用App.Config属性。XAML中的设置。例如,我将GridMaxWidth设置为500。然后在XAML中添加
<UserControl ...
xmlns:Properties="clr-namespace:MyMainNamespace.Properties"
....>
<SomeControl
MaxWidth={Binding Source={x:Static Properties:Settings.Default},
Mode="OneWay,
Path=GridMaxWidth}">
这很好。我的问题是:是否有某种方法可以减少视觉混乱,并将所有绑定源和模式信息放在资源字典中?我试着把
大多数情况下,绑定是永久创建的,不应该自定义,所以在代码中创建绑定是安全的:
例子public class MaxWidthBidning: MultiBinding
{
public MaxWidthBidning()
{
this.Bindings.Add(...)
...
}
}
该方法在处理带有转换器的庞大MultiBindings时非常有用,可以将5++行XAML转换为一行。
<local:Control ComplexProperty={local:MaxWidthBidning} />
更新1 -谈到减少"视觉混乱",我可以称之为我们使用的两种主要技术:
对于非密封对象,被XAML接受(注意,一些派生对象由于某种原因不能在XAML中使用(期望精确的类型匹配而不是检查IsDervied) -所以总是在尝试之前。一个例子是绑定——你可以创建一个从绑定派生的类,并硬连接这些东西(单独的MultiBinding路径&
对于密封对象,例如- DoubleAnimationUsingKeyFrames -你可以创建一个附加的行为,就像'StreamlinedAnimation '。并使用它在代码中创建庞大的部分。因此,你的动画看起来像:
<DoubleAnimationUsingKeyFrames local:StreamlinedAnimation.Definiton="Some Encoded information to be used for creating Frames" />