Angeben von Menübandbildressourcen
Als umfassendes Befehlspräsentationssystem ist das Windows-Menübandframework so konzipiert, dass Bildressourcen in der gesamten Benutzeroberfläche des Menübands umfassend unterstützt werden. Alle Bildressourcen werden im Menübandmarkup deklariert oder von einer Menübandhostanwendung abgefragt.
Für Windows 8 und höher unterstützt das Menübandframework die folgenden Grafikformate: 32-Bit-ARGB-Bitmapdateien (BMP) und PNG-Dateien (Portable Network Graphics) mit Transparenz.
Für Windows 7 und früher müssen Bildressourcen dem in Windows verwendeten Standard-BMP-Grafikformat entsprechen.
Hinweis
Ein Kompilierungsfehler kann auftreten, wenn ein nicht unterstütztes Bildformat für das Framework bereitgestellt wird.
Bildgrößen
Um beim Ändern der Größe eines Anwendungsfensters mehr Flexibilität für Menübandsteuerelementlayouts zu bieten, akzeptiert und rendert das Menübandframework Bilder in einer von zwei Größen: groß oder klein.
Die folgenden Bilder veranschaulichen eine Menübandanwendung, die mehrere Menübandgrößen durch flexible Steuerelementlayouts und den Ersatz großer Bilder durch kleine Bilder unterstützt, sofern verfügbar.
Der folgende Screenshot zeigt das Menüband mit großen Bildern für die Zoomsteuerelemente.
Der folgende Screenshot zeigt dieselbe Menübandgröße mit kleinen Bildern für die Zoomsteuerelemente.
Der folgende Screenshot zeigt das Menüband im ausgeblendeten Zustand. Das Menüband ist ausgeblendet, wenn alle potenziellen Steuerelementlayouts erschöpft sind und das Menüband nicht mit einem verwendbaren Anwendungsarbeitsbereich gerendert werden kann.
Bei jedem Bild hängt die genaue Pixelgröße von der Bildschirmauflösung (dots per inch, dpi) des verwendeten Monitors ab. Bei 96 dpi sind große Bilder 32 x 32 Pixel groß und kleine Bilder 16 x 16 Pixel groß. Die Bildgrößen erhöhen sich linear im Verhältnis zu dpi, wie in der folgenden Tabelle dargestellt.
DPI | Kleines Bild | Großes Bild |
---|---|---|
96 dpi | 16x16 Pixel | 32x32 Pixel |
120 dpi | 20x20 Pixel | 40x40 Pixel |
144 dpi | 24 x 24 Pixel | 48x48 Pixel |
192 dpi | 32x32 Pixel | 64x64 Pixel |
Das Menübandframework skaliert Bildressourcen nach Bedarf. Da die Größenänderung jedoch zu unerwünschten Artefakten und Bildverschlechterungen führen kann, wird dringend empfohlen, dass die Anwendung eine kleine Gruppe von Bildressourcen bereitstellt, die verschiedene häufig verwendete dpi-Einstellungen umfassen. Wenn keine genaue Übereinstimmung gefunden wird, wird das nächste Bild hoch- oder herunterskaliert.
Um dies zu erleichtern, können Bildressourcen im Menübandmarkup deklariert werden, indem eine Reihe von Image-Elementen für jedes Command-Element verwendet wird. Zur Laufzeit wählt das Framework das anzuzeigende Bild basierend auf dem MinDPI-Attribut jedes Image-Elements aus.
Wichtig
Wenn eine Sammlung von Bildressourcen zur Unterstützung bestimmter Bildschirm-DPI-Einstellungen für das Menüband-Framework über eine Reihe von Image-Elementen bereitgestellt wird, verwendet das Framework das Image mit einem MinDPI-Attributwert , der der aktuellen Dpi-Einstellung des Bildschirms entspricht.
Wenn kein Image-Element mit einem MinDPI-Wert deklariert wird, der der aktuellen Bildschirm-DPI-Einstellung entspricht, wählt das Framework das Bild aus, das den nächstgelegenen MinDPI-Wert kleiner als die aktuelle Bildschirm-DPI-Einstellung aufweist, und skaliert die Bildressource hoch. Wenn andernfalls kein Image-Element mit einem MinDPI-Attributwert deklariert wird, der kleiner als die aktuelle Bildschirm-DPI-Einstellung ist, wählt das Framework den nächstgelegenen MinDPI-Wert aus, der größer als die aktuelle Bildschirm-DPI-Einstellung ist, und skaliert die Bildressource herunter.
Im folgenden Beispiel wird veranschaulicht, wie eine Gruppe von Bildern deklariert wird, um verschiedene Menübandgrößen und Systemeinstellungen zu berücksichtigen.
<Command.LargeImages>
<Image Source="res/CutLargeImage32.bmp" Id="116" Symbol="ID_CUT_LARGEIMAGE1" MinDPI="96" />
<Image Source="res/CutLargeImage40.bmp" Id="117" Symbol="ID_CUT_LARGEIMAGE2" MinDPI="120" />
<Image Source="res/CutLargeImage48.bmp" Id="118" Symbol="ID_CUT_LARGEIMAGE3" MinDPI="144" />
<Image Source="res/CutLargeImage64.bmp" Id="119" Symbol="ID_CUT_LARGEIMAGE4" MinDPI="192" />
</Command.LargeImages>
<Command.SmallImages>
<Image Source="res/CutSmallImage16.bmp" Id="122" Symbol="ID_CUT_SMALLIMAGE1" MinDPI="96" />
<Image Source="res/CutSmallImage20.bmp" Id="123" Symbol="ID_CUT_SMALLIMAGE2" MinDPI="120" />
<Image Source="res/CutSmallImage24.bmp" Id="124" Symbol="ID_CUT_SMALLIMAGE3" MinDPI="144" />
<Image Source="res/CutSmallImage32.bmp" Id="125" Symbol="ID_CUT_SMALLIMAGE4" MinDPI="192" />
</Command.SmallImages>
<Command.LargeHighContrastImages>
<Image Source="res/CutLargeImage32HC.bmp" Id="130" Symbol="ID_CUT_LARGEIMAGE1HC" MinDPI="96" />
<Image Source="res/CutLargeImage40HC.bmp" Id="131" Symbol="ID_CUT_LARGEIMAGE2HC" MinDPI="120" />
<Image Source="res/CutLargeImage48HC.bmp" Id="132" Symbol="ID_CUT_LARGEIMAGE3HC" MinDPI="144" />
<Image Source="res/CutLargeImage64HC.bmp" Id="133" Symbol="ID_CUT_LARGEIMAGE4HC" MinDPI="192" />
</Command.LargeHighContrastImages>
<Command.SmallHighContrastImages>
<Image Source="res/CutSmallImage16HC.bmp" Id="135" Symbol="ID_CUT_SMALLIMAGE1HC" MinDPI="96" />
<Image Source="res/CutSmallImage20HC.bmp" Id="136" Symbol="ID_CUT_SMALLIMAGE2HC" MinDPI="120" />
<Image Source="res/CutSmallImage24HC.bmp" Id="137" Symbol="ID_CUT_SMALLIMAGE3HC" MinDPI="144" />
<Image Source="res/CutSmallImage32HC.bmp" Id="138" Symbol="ID_CUT_SMALLIMAGE4HC" MinDPI="192" />
</Command.SmallHighContrastImages>
Wenn im Markup deklarierte Bilder zur Laufzeit aus irgendeinem Grund ungültig sind, wird die Hostanwendung nach neuen Images abgefragt. Wenn diese Images programmgesteuert generiert und geladen werden, sollte die Anwendung versuchen, Bilder zurückzugeben, die gemäß den Standardgrößen des Systemsymbols, die von der SM_CXICON Systemmetrik bestimmt werden, größengerecht sind.
Hinweis
Große Bilder haben eine Größe von SM_CXICON von SM_CXICON und kleine Bilder eine Größe von SM_CXICON/2 bis SM_CXICON/2.
Farbtiefe, Transparenz und Kontrast
Es wird erwartet, dass reguläre Bilder im ARGB-Pixelformat (BPP) von 32 Bit pro Pixel (BPP) vorliegen und auf die Standardgröße des Systemsymbols skaliert werden. Dieses Format unterstützt sowohl Transparenz als auch Antialiasing (mit 8 Bits pro Kanal).
Warnung
Viele Bildbearbeitungstools behalten beim Laden oder Speichern von 32 BPP-Bildern nicht den 8-Bit-Alphakanal der höchsten Reihenfolge bei.
Damit ein Bild im Modus mit hohem Kontrast ordnungsgemäß angezeigt werden kann, muss es ein palettiertes Pixelformat mit 4 BPP aufweisen. Wenn das Bild gerendert wird, ordnet das Menübandframework bestimmte Farben basierend auf dem Kontext mit hohem Kontrast des Bilds neu zu.
In der folgenden Tabelle ist das Farbrenderingverhalten des Frameworks mit hohem Kontrast aufgeführt.
Pixelfarbe
RGB-Wert
Verhalten
Weißer Hintergrund
Dunkler Hintergrund
MAGENTA
800080
Transparent
Transparent
SCHWARZ
000000
COLOR_WINDOWTEXT
WEIß
WEIß
FFFFFF
COLOR_WINDOW
SCHWARZ
DUNKELGRAU
808080
COLOR_3DSHADOW
COLOR_3DSHADOW
GRAU
C0C0C0
COLOR_3DFACE
COLOR_3DFACE
HELLGRAU
DFDFDF
COLOR_3DLIGHT
COLOR_3DLIGHT
DUNKELBLAU
000080
–
WEIß
Weitere Informationen zu den bildformaten, die vom Menübandframework unterstützt werden, finden Sie unter:
- BITMAPINFOHEADER-Struktur : Beschreibt das 32-BPP-ARGB-Pixelformat.
- CreateDIBSection-Funktion : Beschreibt das Erstellen eines Bilds im ARGB-Pixelformat mit 32 BPP.
- LoadImage-Funktion : Beschreibt das Laden eines Bilds im 32-BPP-ARGB-Pixelformat.
Zugriff
Wenn Sie sich auf Bildressourcen verlassen, um Informationen bereitzustellen, Steuerungsfunktionen zu vermitteln und den Anwendungsstatus verfügbar zu machen, erhöht sich der Bedarf an Barrierefreiheitsanforderungen während des Anwendungsentwurfs und der Entwicklung.
Für die einfache Unterstützung mit hohem Kontrast ermöglicht das Menüband, dass ein separater Satz von Bilddateien angezeigt wird, wenn ein Design mit hohem Kontrast aktiv ist. Diese Bilder können 32 BPP oder 4 BPP sein, wobei Farben einer speziellen Palette zugeordnet sind, in der dunkle und helle Farben je nach Vordergrund- und Hintergrundfarben des aktiven Designs mit hohem Kontrast invertiert werden.
Im folgenden Beispiel wird veranschaulicht, wie Bildressourcen mit hohem Kontrast im Menübandmarkup deklariert werden:
<Command Name="cmdNew" Id="0xE100" Symbol="ID_CMD_NEW" LabelTitle="New document" Keytip="N" >
<Command.TooltipTitle>New (Ctrl+N)</Command.TooltipTitle>
<Command.TooltipDescription>Create a new document.</Command.TooltipDescription>
<Command.LargeImages>
<Image Source="cmdNew-32px.bmp" MinDPI="96" />
<Image Source="cmdNew-40px.bmp" MinDPI="120" />
<Image Source="cmdNew-48px.bmp" MinDPI="144" />
<Image Source="cmdNew-64px.bmp" MinDPI="192" />
</Command.LargeImages>
<Command.LargeHighContrastImages>
<Image Source="cmdNew-32px-HC.bmp" MinDPI="96" />
<Image Source="cmdNew-40px-HC.bmp" MinDPI="120" />
<Image Source="cmdNew-48px-HC.bmp" MinDPI="144" />
<Image Source="cmdNew-64px-HC.bmp" MinDPI="192" />
</Command.LargeHighContrastImages>
<Command.SmallImages>
<Image Source="cmdNew-16px.bmp" MinDPI="96" />
<Image Source="cmdNew-20px.bmp" MinDPI="120" />
<Image Source="cmdNew-24px.bmp" MinDPI="144" />
<Image Source="cmdNew-32px.bmp" MinDPI="192" />
</Command.SmallImages>
<Command.SmallHighContrastImages>
<Image Source="cmdNew-16px-HC.bmp" MinDPI="96" />
<Image Source="cmdNew-20px-HC.bmp" MinDPI="120" />
<Image Source="cmdNew-24px-HC.bmp" MinDPI="144" />
<Image Source="cmdNew-32px-HC.bmp" MinDPI="192" />
</Command.SmallHighContrastImages>
</Command>
Zugehörige Themen