Wpf Mainwindow主窗口Grid下嵌套的子Grid没有name 怎么在后台更改背景颜色?

资源系统,使用资源可以在一个地方定义对象而在整个标记中使用

它们。尽管可以使用资源存储各种对象,但是使用资源最常见的原因是通过它们保存样式。

样式是可以应用到元素的属性值的集合。

标准扮演类似的角色。和

化特性集合,并且为了保证一致性,在整个应用程序中应用它们。同

可以自动工作,指定具体的元素类型,并且通过元素树层叠起来。然而,

强大,因为它们能够设置任何依赖项属性。这意味着可以使用它们标准化未格式化的特性,如

当一个属性发生变化时可以通过触发器改变控件的样式

正如将要在本章中介绍的那样

并且能够使用模板重新定义控件的内置外观

。一旦学习了如何使用样式,就可以在所有的

资源具有几个重要的优点,

包括简化标记和使应用程序更容易维护。

那么样式有哪些优点呢?

为了理解适合使用样式的场合,分析一个简单的示例十分有帮助。设想需要标准化在窗口

中使用的字体。最简单的方法是设置包容器窗口的字体属性。这些属性是在

用于压缩的或扩展的变体

。幸运的是,这些属性值具有继承特性,当

在窗口级别上设置这些属性时,在窗口中的所有元素都会使用相同的属性值,除非显式地覆盖

属性值继承是依赖项属性提供的许多可选的特性之一。在第

章已介绍了依赖项属性。

现在考虑一种不同的情况,希望只为用户界面中的一部分锁定字体。如果能够在一个特定

上相同的方法,并设置包容器的字体属性。但问题并不总是这么简单。例如,可能希望使所有

的按钮具有一致的字体和文本尺寸,并且使用和其他元素不同的字体设置。对于这种情况,就

需要另外一种方法,在某个地方定义这些细节,并在所有应用它们的地方重用这些细节。

资源提供了一个解决方案,但是有些笨拙。因为在

但真正的问题是,您的外部码头面板似乎没有扩展到其容器的整个宽度。在外部DockPanel上设置一个背景,让您直观地看到它为什么不填充容器。

为了响应下面的注释线程,添加以下示例

)。现在我将介绍 ICommand,这是一个 MVVM 应用程序用于定义用户操作(通常被数据绑定到按钮)的 .NET 接口,并探讨创建异步

此处的这些模式可能不会与所有情景完美契合,因此请根据需要进行调整。实际上,整篇文章以对异步命令类型的一系列改进为主线展开。在这些迭代过程的最后,您将最终获得如图 1 中所示的应用程序。这类似于我在上一篇文章中开发的应用程序,但这次,我为用户提供了要执行的实际命令。当用户单击“开始”按钮时,将从文本框读取 URL,并且该应用程序将对此 URL 上的字节数进行计数(人为设置的延迟之后)。在此操作正在进行时,用户无法启动另一个操作,但他能够取消此操作。


图 1:能够执行一个命令的应用程序

然后我将展示如何使用非常类似的方法创建任何数目的操作。图 2 显示了修改后的应用程序,“开始”按钮表示将操作添加到操作集中。


图 2:执行多个命令的应用程序

在开发此应用程序过程中,我将进行一些简化,以便将重点始终放在异步命令上,而不是实现细节上。首先,我不会使用命令执行参数。在真实应用程序中我几乎从不需要使用参数;但如果需要,本文中的模式可轻松进行扩展,将其包含在内。其次,我不亲自实现 /"; Framework 中的异步支持。他的主页(包括博客)位于 。

我要回帖

更多关于 窗口嵌套工具 的文章

 

随机推荐