我是wpf的新手。我一直在阅读很多关于wpf和依赖项属性的知识。我对依赖属性的理解是将属性绑定到xaml(作为目标的xaml)。我设想了一个程序,其中一个配置窗口将控制程序其余部分(字体,字体大小,颜色等)的所有视觉元素。使用全局属性的依赖属性
在我的第一次尝试中,我创建了一个单独的窗口,其中将包含所有不同的配置选项。这失败了,因为我无法弄清楚如何在单独的XAML文件中使用依赖项属性。
此外,依赖项属性只能在直接或不直接实现DependecyObject类的类中注册。我如何知道哪些wpf对象实现它?看起来窗户没有,但我可能是错的。我的第二个尝试是这样的,在顶部窗口中注册依赖关系,这样整个可视化树就可以访问它。我有异常被抛出,我唯一能做的就是该窗口没有实现给DependencyObject。 (我可能会误解,而视觉树的东西对我来说仍然是一个谜,我正在学习)
所以现在我很茫然。我试图甚至有可能吗?这个项目的全部目的是帮助我学习WPF,现在我想知道是否应该降低我对wpf可以完成的任务的期望。
编辑:
什么样的异常?你想做什么?你能粘贴一些代码吗?
public partial class MainWindow : Window {
public Color BackColor {
get { return (Color)GetValue(BackColorProperty); }
set { SetValue(BackColorProperty, value); }
}
public static readonly DependencyProperty BackColorProperty =
DependencyProperty.Register("BackColor",typeof(Color),typeof(MainWindow),
new UIPropertyMetadata(0));
看来,Color
导致异常。我将其更改为int
,并没有发生任何异常。那么只有原始类型才能被注册?
WPF是一个框架,可以帮助你建立真正漂亮的应用程序(它也包括打印等)你想做什么?它应该是Visual Tree的一部分吗?
此外,这个项目只是为了让我学习WPF。我的想法是用不同的页面创建一个主界面。配置按钮会弹出一个窗口,其中包含用于更改字体,字体大小,背景颜色等的选项。这些更改将在用户进行更改时应用于主UI。我的问题是如何在配置类以外的地方访问那些依赖项属性?我如何拥有一个可以具有滑块和组合框的窗口,并且其他任何类都可以访问这些配置设置?
简而言之,我希望单个配置(字体和颜色)能以某种方式被所有用户界面继承。并且该配置可以被用户改变和看到。