根据应用程序上下文自动选择图像
本主题介绍如何根据应用上下文在控件中显示不同的图像, app context上下文由一个或多个应用程序和系统设置定义:
- 系统DPI设置
- 应用程序语言(UI 文化)
- 应用程序的绘画主题
- 触摸模式可用性
概述
例如,您希望在常规上下文中的控件中显示“Add.png”图像,并在系统应用 150% DPI 设置时在同一控件中显示“Add.scale-150.png”,应在运行时根据当前上下文自动选择正确的图像。
DevExpress WPF控件支持基于当前上下文的自动图像选择。要启用此功能,项目中的图像必须在其名称中具有专用限定符,或者必须将这些图像放在名称包含这些限定符的文件夹中,限定符标识应该在当前上下文中使用的图像版本。
下面的截图展示了添加到images文件夹中的五张图片:
- Add.png”文件是常规图像。
- “Add.theme-metropolis.png”名称由常规名称(“Add”),限定符名称(“theme”)和限定符值(“metropolis”)组成,因此它在应用此图像时识别应用程序上下文(即,当“theme”为“metropolis”时)。
- “Add.theme-metropolis_scale-150.png”名称包含另一个限定符(“scale”)及其值(150)。
- 其他图像使用相同的命名符号。
下面的代码使用QualifiedImage扩展将Add.png图像分配给工具栏中的按钮。
xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars" xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" <dxb:ToolBarControl> <dxb:BarButtonItem Glyph="{dx:QualifiedImage Uri=Images/Add.png}" Content="Add"/> </dxb:ToolBarControl>
QualifiedImage扩展的使用保证了基于当前上下文的自动图像替换。
- Add.png—— 该图像将在所有情况下使用,但不包括以下四种缩小应用程序上下文的情况。
- Add.theme-metropolis.png——当应用“MetropolisLight”、“MetropolisDark”或“TouchlineDark”主题时将使用此图像,但以下情况除外。
- Add.theme-metropolis_scale-150.png——当应用“MetropolisLight”、“MetropolisDark”或“TouchlineDark”主题时,系统DPI设置为150%时将使用此图像。
- Add.theme-office.png——当应用任何名称中包含“Office”的主题时,将应用此图像,但以下情况除外。
- Add.theme-office_input-touch.png ——当应用名称中包含“Office”的任何触摸感知主题时,将使用此图像。这些主题是:“Office2013;Touch”、“Office2013LightGray;Touch”和“Office2013DarkGray;Touch”。
您可以将图像放置在名称包含这些限定符的文件夹中来替代在图像名称中使用限定符。上面显示的图像可以放置在文件夹中,如下所示。
QualifiedImage扩展必须指定与常规上下文对应的图像的完整路径,对于上面的截图,这个路径必须是Images/Add.png:
... <dxb:BarButtonItem Glyph="{dx:QualifiedImage Uri=Images/Add.png}" Content="Add"/>arkGray;Touch”。
命名约定
要在图像名称中使用限定符,请使用以下命名约定。
若要在文件夹名称中使用限定符,请使用以下命名约定。
您可以通过同时在文件夹和图像名称中使用限定符来组合这两种方法。
文件夹/ lang-en-US / file.theme-office.png
以下部分将描述可用的限定符及其值。
主题限定词
下表涵盖了主题限定符和支持的限定符值。
DPI设置限定符
下表涵盖了DPI设置限定符。
应用语言(文化)限定词
下表涵盖了应用程序语言(区域性)限定符。