Eckradius

Ab Version 2.2 der Windows-UI-Bibliothek (WinUI) wurde das Standardformat für viele Steuerelemente dahin gehend aktualisiert, dass abgerundete Ecken verwendet werden. Mit diesen neuen Formatvorlagen sollen Wärme und Vertrauen gefördert und die visuelle Verarbeitung der Benutzeroberfläche erleichtert werden.

Hier sind zwei Schaltflächensteuerelemente, das erste ohne abgerundete Ecken und das zweite mit einem abgerundeten Eckformat.

Schaltflächen ohne und mit abgerundeten Ecken

WinUI bietet die aktualisierten Stile für WinUI- und Plattformsteuerelemente. Weitere Informationen zum Anpassen abgerundeter Ecken finden Sie unter Anpassungsoptionen.

Wichtig

Einige Steuerelemente stehen sowohl für die Plattform (Windows.UI.Xaml.Controls) als auch für WinUI (Microsoft.UI.Xaml.Controls) zur Verfügung; beispielsweise TreeView oder ColorPicker. Wenn Sie WinUI in Ihrer App verwenden, sollten Sie die WinUI-Version des Steuerelements verwenden. Das Abrunden der Ecken wird bei Verwendung mit WinUI in der Plattformversion möglicherweise inkonsistent übernommen.

Wichtige APIs:Control.CornerRadius-Eigenschaft

Standarddesigns für Steuerelemente

Die Formatvorlagen mit abgerundeten Ecken werden in drei Bereichen der Steuerelemente verwendet: bei rechteckigen Elementen, Flyoutelementen und Balkenelementen.

Ecken von rechteckigen Benutzeroberflächenelementen

  • Zu diesen Benutzeroberflächenelementen gehören einfache Steuerelemente, wie Schaltflächen, die Benutzer zu jeder Zeit auf dem Bildschirm sehen.
  • Der Standardwert des Radius, den wir für diese Benutzeroberflächenelemente verwenden, ist 4 px.

Hervorgehobene Schaltfläche mit abgerundeten Ecken

Steuerelemente

  • AutoSuggestBox
  • Schaltflächen
    • ContentDialog-Schaltflächen
  • CalendarDatePicker
  • CheckBox
    • TreeView-, GridView- und ListView-Kontrollkästchen mit mehrfacher Auswahl
  • Farbauswahl
  • CommandBar
  • ComboBox
  • DatePicker
  • DropDownButton
  • Expander
  • FlipView
  • GridView und ListView
    • AutoSuggestBox, ComboBox, DatePicker, MenuBar, NavigationView, TimePicker, TreeView list
  • InfoBar
  • Steuerelemente für Freihandeingaben
  • Medienwiedergabe
  • MenuBar
  • NumberBox
  • PasswordBox
  • RichEditBox
  • SplitButton
  • TextBox
  • TimePicker
  • ToggleButton
  • ToggleSplitButton

Ecken der Flyout- und Overlay-Elemente der Benutzeroberfläche

  • Hierbei kann es sich um vorübergehende Benutzeroberflächenelemente handeln, die nur zeitweilig auf dem Bildschirm angezeigt werden, oder um Elemente, die andere UI-Elemente überlagern, wie TabView-Registerkarten.
  • Der Standardradiuswert, den wir für diese UI-Elemente verwenden, ist 8px.

Flyoutbeispiel

Steuerelemente

  • CommandBarFlyout
  • ContentDialog
  • Flyout
  • MenuFlyout
  • TabView-Registerkarten
  • TeachingTip
  • QuickInfo (verwendet 4px-Radius aufgrund kleiner Größe)
  • Flyoutteil (in offenem Zustand)
    • AutoSuggestBox
    • CalendarDatePicker
    • ComboBox
    • DatePicker
    • DropDownButton
    • Freihandsteuerung
    • MenuBar
    • NumberBox
    • SplitButton
    • TimePicker
    • ToggleSplitButton

Balkenelemente

  • Diese Elemente der Benutzeroberfläche sind wie Balken oder Linien geformt. Beispiel: ProgressBar.
  • Die standardwerten Radiuswerte, die wir hier verwenden, sind 4px.

Statusleistenbeispiel

Steuerelemente

  • NavigationView-Auswahlindikator
  • ProgressBar
  • ScrollBar
  • Schieberegler
    • ColorPicker-Farbschieberegler
    • Schieberegler der MediaTransportControls-Suchleiste

Anpassungsoptionen

Die von uns angegebenen Standardwerte für den Eckradius sind nicht in Stein gemeißelt, und es gibt eine Reihe von Wegen, auf denen Sie den Betrag an Rundung an den Ecken komfortabel ändern können. Dies kann mithilfe zweier globaler Ressourcen oder über die CornerRadius-Eigenschaft direkt im Steuerelement erfolgen, abhängig vom gewünschten Detailgrad der Anpassung.

Wann Rundung vermieden werden soll

Es gibt Fälle, in denen die Ecken eines Steuerelements nicht gerundet werden sollten, und in diesen Fällen runden wir auch nicht.

  • Wenn sich mehrere Benutzeroberflächenelemente berühren, die innerhalb eines Containers bereitgestellt werden, wie etwa die zwei Teile eines SplitButton-Elements. An der Berührungsfläche darf kein Leerraum vorhanden sein.

SplitButton

  • Wenn ein Flyout-Benutzeroberflächenelement mit einer Benutzeroberfläche verbunden ist, die das Flyout auf einer Seite aufruft.

Screenshot eines Flyouts „AutoSuggest“ (automatisches Vorschlagen), bei dem einige Ecken nicht abgerundet sind.

Änderung von CornerRadius für eine gesamte Seite oder gesamte App

Es gibt zwei Ressourcen, die die Eckradien aller Steuerelemente steuern:

  • ControlCornerRadius: der Standardwert ist 4 px.
  • OverlayCornerRadius - Der Standardwert ist 8px.

Wenn Sie den Wert dieser Ressourcen in einem beliebigen Gültigkeitsbereich überschreiben, wirkt sich dies auf alle Steuerelemente in diesem Bereich aus.

Das bedeutet, wenn Sie die Rundung aller Steuerelemente ändern möchten, auf die Rundung angewendet werden kann, können Sie beide Ressourcen auf App-Ebene mit neuen Werten für CornerRadius definieren, wie hier dargestellt:

<Application
    xmlns=”http://schemas.microsoft.com/winfx/2006/xamlpresentation”
    xmlns:x=”http://schemas.micosoft.com/winfx/2006/xaml”
    xmlns:control=”using:Microsoft.UI.Xaml.Controls”>
    <Application.Resources>
      <controls:XamlControlsResources>
        <controls:XamlControlsResources.MergedDictionaries>
          <ResourceDictionary>
            <CornerRadius x:Key="OverlayCornerRadius">0</CornerRadius>
            <CornerRadius x:Key="ControlCornerRadius">0</CornerRadius>
          </ResourceDictionary>
        </controls:XamlControlsResources.MergedDictionaries>
      </controls:XamlControlsResources>
    </Application.Resources>
</Application>


Wenn Sie die Rundung aller Steuerelemente in einem bestimmten Bereich ändern möchten, etwa auf Seiten- oder Containerebene, können Sie einem ähnlichen Muster folgen:

<Grid>
    <Grid.Resources>
        <CornerRadius x:Key="ControlCornerRadius">8</CornerRadius>
    </Grid.Resources>
    <Button Content="Button"/>
</Grid>

Hinweis

Die OverlayCornerRadius-Ressource muss auf App-Ebene definiert sein, um wirksam zu sein.

Dies liegt daran, dass Popups und Flyouts nicht in der visuellen Struktur der Seite enthalten sind, sie werden dem Popupstamm hinzugefügt. Das Ressourcenauflösungssystem durchläuft die visuelle Popupstammstruktur nicht ordnungsgemäß in die visuelle Struktur der Seite.

Änderungen von CornerRadius auf Steuerelementebene

Sie können die CornerRadius-Eigenschaften von Steuerelementen direkt ändern, wenn Sie die Rundung nur für eine Anzahl ausgewählter Steuerelemente ändern möchten.

Standardwert Geänderte Eigenschaft
DefaultCheckBox CustomCheckBox
<CheckBox Content="Checkbox"/> <CheckBox Content="Checkbox" CornerRadius="5"/>

Nicht alle Steuerelemente reagieren mit geänderter Darstellung der Ecken auf die Änderung der CornerRadius-Eigenschaft. Um sicherzustellen, dass das Steuerelement, dessen Ecken Sie abrunden möchten, in der erwarteten Weise auf die geänderte CornerRadius-Eigenschaft reagiert, überprüfen Sie zuerst, ob sich die globalen Ressourcen ControlCornerRadius oder OverlayCornerRadius auf das fragliche Steuerelement auswirken. Ist dies nicht der Fall, überprüfen Sie, ob das Element, das Sie runden möchten, überhaupt Ecken aufweist. Viele unserer Steuerelemente rendern tatsächlich keine Kanten und können die CornerRadius-Eigenschaften daher nicht ordnungsgemäß nutzen.

Benutzerdefinierte Formatvorlagen basierend auf WinUI

Du kannst deine benutzerdefinierten Formatvorlagen basierend auf den WinUI-Formatvorlagen für abgerundete Ecken erstellen, indem du das richtige BasedOn-Attribut in deiner Formatvorlage angibst. Um beispielsweise eine benutzerdefinierte Formatvorlage basierend auf dem WinUI-Schaltflächenstil zu erstellen, gehst du folgendermaßen vor:

<Style x:Key="MyCustomButtonStyle" BasedOn="{StaticResource DefaultButtonStyle}">
   ...
</Style>

Im Allgemeinen folgen die WinUI-Steuerelementstile einer konsistenten Namenskonvention: „DefaultXYZStyle“, wobei „XYZ“ für den Namen des Steuerelements steht. Für eine vollständige Referenz kannst du die XAML-Dateien im WinUI-Repository durchsuchen.