Поделиться через


Window.SetTitleBar(UIElement) Метод

Определение

Включает поведение строки заголовка для элемента XAML, если ExtendsContentIntoTitleBar имеет значение true.

public:
 virtual void SetTitleBar(UIElement ^ titleBar) = SetTitleBar;
void SetTitleBar(UIElement const& titleBar);
public void SetTitleBar(UIElement titleBar);
function setTitleBar(titleBar)
Public Sub SetTitleBar (titleBar As UIElement)

Параметры

titleBar
UIElement

Элемент для поддержки поведения строки заголовка.

Примеры

В этом примере показано, как расширить область содержимого окна и заменить строку Grid заголовка системы на , содержащую значок и текст заголовка.

<Window ... >
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="32"/>
            <RowDefinition/>
        </Grid.RowDefinitions>

        <Grid x:Name="AppTitleBar">
            <Image Source="Images/WindowIcon.png"
                   HorizontalAlignment="Left" 
                   Width="16" Height="16" 
                   Margin="8,0"/>
            <TextBlock x:Name="AppTitleTextBlock" Text="App title"
                       TextWrapping="NoWrap"
                       Style="{StaticResource CaptionTextBlockStyle}" 
                       VerticalAlignment="Center"
                       Margin="28,0,0,0"/>
        </Grid>

        <NavigationView Grid.Row="1">
            <!-- Page content -->
        </NavigationView>
    </Grid>
</Window>
public MainWindow()
{
    this.InitializeComponent();

    ExtendsContentIntoTitleBar = true;
    SetTitleBar(AppTitleBar);  // skip call to this api to get a default custom title bar
}

Комментарии

Вызовите этот метод, чтобы заменить строку заголовка системы пользовательским пользовательским интерфейсом заголовка для вашего приложения. Указанный элемент поддерживает те же системные взаимодействия, что и в строке заголовка системы, включая перетаскивание, двойной щелчок для изменения размера и щелчок правой кнопкой мыши для отображения системного меню. В результате ввод указателя (мышь, сенсорный ввод, перо и т. д.) больше не распознается элементом и его дочерними элементами.

Прямоугольная область, занимаемая указанным элементом, выступает в качестве строки заголовка для указателя, даже если элемент блокируется другим элементом или элемент является прозрачным.

Если вы хотите разместить интерактивные элементы в области заголовка окна, можно использовать API InputNonClientPointerSource . Пример см. на странице Заголовок в примере коллекции WinUI .

Расширение содержимого в строке заголовка

Чтобы указать настраиваемую строку заголовка, необходимо задать для параметра ExtendsContentIntoTitleBar значение , true чтобы скрыть системную строку заголовка по умолчанию. Если ExtendsContentIntoTitleBar имеет значение false, вызов SetTitleBar не оказывает никакого влияния. Элемент пользовательской строки заголовка отображается в тексте окна приложения как обычный элемент пользовательского интерфейса и не получает поведения заголовка окна.

Если для свойства ExtendsContentIntoTitleBar задано значение true , но не вызывать SetTitleBar (или вызывать SetTitlebar с аргументом null ), будет предоставлена настраиваемая строка заголовка по умолчанию. Эта строка заголовка по умолчанию является прямой заменой строки заголовка системы по положению, ширине и высоте. Если вам нужна специализированная строка заголовка, можно вызвать SetTitleBar с элементом UIElement и получить область заголовка строки по UIElementэтой позиции, ширине и высоте. Его UIElement можно разместить в любом месте содержимого приложения, а не только в не клиентской области.

Элемент "Строка заголовка"

В строке заголовка можно указать только один элемент. Если требуется несколько элементов, их можно указать как дочерние элементы одного контейнера (например , Grid или StackPanel).

Настраиваемая строка заголовка лучше всего работает, если она не глубоко вложена в приложение. Глубокое вложение uiElement в дерево XAML может привести к непредсказуемой поведению макета. Строка заголовка всегда будет иметь прямоугольную форму. В случае с непрямоугольным UIElementпрямоугольником будет использоваться прямоугольный ограничивающий прямоугольник для размеров строки заголовка.

Цвета

В пользовательской строке заголовка для реализации используется строка заголовка AppWindow . В результате можно использовать API тем AppWindowTitleBar для таких цветов, как ButtonBackgroundColor, ButtonForegroundColorи т. д.

Использование тем на основе ресурсов в более ранних версиях (например WindowCaptionBackground, ) является нерекомендуемой и не оказывает никакого влияния.

Применяется к

См. также раздел