Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Címsor vezérlővel egyszerűbben hozhat létre egyéni címsort az alkalmazáshoz. A címsor egy Windows alkalmazás felhasználói felületének alapvető összetevője, amely ikonján és címén keresztül azonosítja az alkalmazást, a rendszer feliratozási gombjait tartalmazza, amelyek lehetővé teszik a felhasználó számára az ablak bezárását, maximalizálását, minimalizálását és visszaállítását, és lehetővé teszi, hogy a felhasználó húzza az ablakot a képernyőn.
Egyéni címsor használatával jobban integrálhatja a címsorterületet az alkalmazás felhasználói felületével. A címsor testre szabható, hogy megfeleljen az alkalmazás vizuális stílusának a Mica-témákkal. Tartalmazhat más releváns információkat, például a dokumentum címét vagy az aktuális állapotot (pl. "Szerkesztés", "Megtekintés", stb.). Emellett más WinUI 3-vezérlőket is üzemeltethet, például az AutoSuggestBox és a PersonPicture vezérlőket, amelyek egységes felhasználói élményt biztosítanak az alkalmazás számára.
Ez a megfelelő vezérlő?
A Címsor vezérlőelemet akkor használja, ha a címsorterületet az alkalmazás felhasználói felületével szeretné integrálni olyan testreszabások használatával, mint a feliratok, a Mica-tartalmak és a WinUI-vezérlőkkel való integráció.
Anatómia
Alapértelmezés szerint a címsor csak a rendszer felirat gombjait jeleníti meg. A címsor más részei a társított tulajdonságbeállításoktól függően jelennek meg vagy rejtettek.
A címsor az alábbi területekre oszlik:
- Vissza gomb:IsBackButtonEnabled, IsBackButtonVisible, BackRequested – Beépített vissza gomb a navigációhoz.
- Ablaktábla váltógombja:IsPaneToggleButtonVisible, PaneToggleRequested – Ez a gomb a NavigationView vezérlővel együtt használható.
- Bal fejléc:LeftHeader
- Icon:IconSource
- Cím:Cím
- Alcím:Alcím
- Tartalom:Tartalom
- Jobb fejléc:RightHeader
- Minimális húzási régió: Ez a terület a rendszer felirat gombjai mellett van fenntartva, így a felhasználónak mindig van helye arra, hogy megragadja az ablakot a húzáshoz.
- Rendszerfelirat gombjai: Ezek a gombok nem részei a Címsor vezérlőelemnek – az RTL- vagy LTR-beállításoktól függően egyszerűen helyet foglal el a feliratgombok megjelenési helyén. A feliratgombokat és a testreszabásokat az AppWindowTitleBar kezeli.
Az elrendezés megfordul, amikor a FlowDirection értéke RightToLeft.
Címsor létrehozása
- Fontos API-k:TitleBar osztály, Cím tulajdonság
![]()
A WinUI 3 Katalógus alkalmazás interaktív példákat tartalmaz a WinUI vezérlőire és funkcióira. Kérje le az alkalmazást a Microsoft Áruházból vagy keresse meg a forráskódot a GitHub webhelyen.
Ez a példa egy egyszerű címsort hoz létre, amely lecseréli a rendszer címsorát. Címe, ikonja és Mica téma szerint kialakított megjelenése van.
<Window
... >
<Window.SystemBackdrop>
<MicaBackdrop Kind="Base"/>
</Window.SystemBackdrop>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TitleBar x:Name="SimpleTitleBar"
Title="My App">
<TitleBar.IconSource>
<FontIconSource Glyph=""/>
</TitleBar.IconSource>
</TitleBar>
<!-- App content -->
<Frame x:Name="RootFrame" Grid.Row="1"/>
</Grid>
</Window>
public MainWindow()
{
this.InitializeComponent();
// Hides the default system title bar.
ExtendsContentIntoTitleBar = true;
// Replace system title bar with the WinUI TitleBar control.
SetTitleBar(SimpleTitleBar);
}
Integráció a NavigationView szolgáltatással
A Navigációs nézet beépített háttérgombbal és panelváltógombbal rendelkezik. A Fluent tervezési útmutatója azt javasolja, hogy ezek a vezérlők egyéni címsor használata esetén kerüljenek a címsorba.
Ez a példa bemutatja, hogyan integrálható a Címsor vezérlőelem egy NavigationView vezérlővel a vissza gomb és az ablaktábla váltógombjának elrejtésével a navigációs nézetben, és hogyan használhatja helyette a címsor megfelelő gombjait.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TitleBar Title="My App"
IsBackButtonVisible="True"
IsBackButtonEnabled="{x:Bind RootFrame.CanGoBack, Mode=OneWay}"
BackRequested="TitleBar_BackRequested"
IsPaneToggleButtonVisible="True"
PaneToggleRequested="TitleBar_PaneToggleRequested">
</TitleBar>
<NavigationView x:Name="RootNavigationView" Grid.Row="1"
IsBackButtonVisible="Collapsed"
IsPaneToggleButtonVisible="False">
<Frame x:Name="RootFrame" />
</NavigationView>
</Grid>
private void TitleBar_BackRequested(TitleBar sender, object args)
{
if (RootFrame.CanGoBack)
{
RootFrame.GoBack();
}
}
private void TitleBar_PaneToggleRequested(TitleBar sender, object args)
{
RootNavigationView.IsPaneOpen = !RootNavigationView.IsPaneOpen;
}
Húzási régiók testreszabása
A felhasználók áthelyeznek egy ablakot a címsáv húzásával. A Címsor vezérlőelem meghatározza, hogy a tartalomterület mely részeit húzhatják a felhasználók, és mely részek kapnak mutatóbemenetet, például kattintásokat.
A Windows App SDK 2.1.3-as verziótól kezdve a TitleBar vezérlő megvizsgálja a tartalom elemeit, és csak az interaktív vezérlőket, például gombokat, szövegdobozokat és kombinált listamezőket zárja ki a húzási régióból. Az üres terület és a nem interaktív elemek, például a TextBlock alapértelmezés szerint húzhatók, így nem kell módosítania a jelölést. A korábbi verziókban a tartalomterület üres területe akadályozhatta az ablak húzását. Ez az alapértelmezett viselkedés a(z) TitleBar_ContentDragRegions futásidejű kompatibilitási változás. További információ: RuntimeCompatibilityOptions.DisabledChanges.
Az alábbi példa a WinUI 3 katalógusmintán alapul. A címsor tartalma egy Grid, amely AutoSuggestBoxot és gombot tartalmaz. Mindkét vezérlő kattintható, és a mellettük lévő üres terület húzható.
<TitleBar x:Name="AppTitleBar" Title="My App">
<TitleBar.Resources>
<!-- Stretch the content across the available width of the title bar. -->
<HorizontalAlignment x:Key="TitleBarContentHorizontalAlignment">Stretch</HorizontalAlignment>
</TitleBar.Resources>
<TitleBar.Content>
<Grid ColumnSpacing="8">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<AutoSuggestBox MaxWidth="580"
VerticalAlignment="Center"
PlaceholderText="Search..."
QueryIcon="Find" />
<StackPanel x:Name="RightPanel"
Grid.Column="1"
Orientation="Horizontal"
Spacing="8"
VerticalAlignment="Center">
<Button x:Name="StatusButton"
Content="Status"
Click="StatusButton_Click" />
</StackPanel>
</Grid>
</TitleBar.Content>
</TitleBar>
Elem húzási viselkedésének felülírása
A címsor tartalmának egyik elemének alapértelmezett viselkedésének felülbírálásához állítsa be a TitleBar.IsDragRegion csatolt tulajdonságot. A tulajdonság egy null értéket is felvevő logikai érték.
| Érték | Behavior |
|---|---|
Nincs beállítva (null) |
A Címsáv vezérlőelem dönt. Az interaktív vezérlők kattinthatók, más elemek pedig húzhatók. |
True |
Az elem húzható, még akkor is, ha interaktív vezérlőről van szó. Az elemen történő mutatóbevitel áthelyezi az ablakot, így a felhasználók nem kattinthatnak az elemre. |
False |
Az elem akkor is rákattintható, ha nem interaktív vezérlő. |
A tulajdonságot egy panelen, például a StackPanelen állíthatja be:
- Ha be
Falsevan állítva, a panel teljes területe kattintható, beleértve a gyermekek közötti területet is. - Ha be van állítva
True, a panel és a gyermekei húzhatók, kivéve azokat a gyermekelemeket, amelyeknél a tulajdonságotFalseértékre állítja.
Állítsa be a tulajdonságot a legkisebb elemre, amelyiknek szüksége van rá, hogy ne legyen a címsáv nagy területe véletlenül húzható vagy kattintható.
Ez a példa a formázási vezérlők egy csoportját egészében kattinthatóvá teszi, így a felhasználók nem húzhatják az ablakot, amikor a vezérlők közötti üres területre kattintanak.
<StackPanel Orientation="Horizontal" Spacing="8" TitleBar.IsDragRegion="False">
<ComboBox PlaceholderText="Font" />
<ComboBox PlaceholderText="Size" />
<ToggleButton Content="Bold" />
</StackPanel>
A kódban hívja meg a SetIsDragRegion függvényt az érték beállításához, és az alapértelmezett viselkedéshez való visszatéréshez hívja meg a ClearValue elemet a(z) IsDragRegionProperty értékkel. Az érték olvasásához hívja meg a GetIsDragRegion parancsot. Visszaadja null , ha a tulajdonság nincs beállítva. Amikor az érték megváltozik, a Címsor vezérlőelem frissíti a húzási régiókat.
// Make the button draggable. Users can't click it.
TitleBar.SetIsDragRegion(StatusButton, true);
// Make the button clickable.
TitleBar.SetIsDragRegion(StatusButton, false);
// Clear the value so that the TitleBar control decides.
StatusButton.ClearValue(TitleBar.IsDragRegionProperty);
Húzási régiók frissítése a tartalom módosításakor
A Címsor vezérlőelem frissíti a húzási régiókat a tartalom beállításakor vagy cseréjekor, a tartalom betöltésekor, a címsor méretének módosításakor, valamint amikor egy elemen a TitleBar.IsDragRegion értéke megváltozik.
Ha a címsor tartalmának elemeit futtatáskor adja hozzá, távolítja el vagy méretezi át, a módosítás után hívja meg a RecomputeDragRegions metódust.
private void AddButton_Click(object sender, RoutedEventArgs e)
{
RightPanel.Children.Insert(0, new Button { Content = "Extra" });
// Update the drag regions so that the new button is clickable.
AppTitleBar.RecomputeDragRegions();
}
Ha a címsor tartalma gyakran változik, helyette beállíthatja a(z) AutoRefreshDragRegions értékét erre: True. A TitleBar vezérlőelem ezután minden elrendezési ciklus után frissíti a húzási régiókat. Ez a beállítás hatással lehet a teljesítményre, ezért alapértelmezés szerint False.
<TitleBar x:Name="AppTitleBar" Title="My App" AutoRefreshDragRegions="True">
<!-- Title bar content that changes at run time. -->
</TitleBar>
Note
A húzási régiók csak a mutatóbemenetet befolyásolják. Nem változtatják meg a billentyűzetfókuszt, és azt sem, hogy az UI-automatizálás ügyfelek, például a képernyőolvasók hogyan lépnek kapcsolatba a címsor elemeivel. Győződjön meg arról, hogy a címsor interaktív vezérlői továbbra is elérhetők a billentyűzettel.
Ha az alkalmazás nem használja a Címsor vezérlőelemet, az InputNonClientPointerSource osztály használatával állítsa be az egyéni címsor interaktív régióit. További információ: Interaktív tartalom.
Kapcsolódó cikkek
Windows developer