Share via


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.

Screenshot eines Menübands, das große Bilder für die Zoomsteuerelemente verwendet.

Der folgende Screenshot zeigt dieselbe Menübandgröße mit kleinen Bildern für die Zoomsteuerelemente.

Screenshot eines Menübands, das kleine Bilder für die Zoomsteuerelemente verwendet.

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.

Screenshot eines reduzierten Menübands

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:

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>

Command.SmallImages

UI_PKEY_SmallImage

Command.LargeImages

UI_PKEY_LargeImage

Command.SmallHighContrastImages

UI_PKEY_SmallHighContrastImage

Command.LargeHighContrastImages

UI_PKEY_LargeHighContrastImage