2015-09-18 3 views
1

У меня есть вопрос о выборке Title'Bar из репозитория GitHub от Microsoft (https://github.com/JustinXinLiu/FullScreenTitleBarRepo/tree/master/FullScreenTitleBarRepo): В функции AddCustomTitleBar, там есть строка:для Windows Универсальное приложение SetTitleBar

customTitleBar.EnableControlsInTitleBar(areControlsInTitleBar); 

EnableControlsInTitleBar здесь:

public void EnableControlsInTitleBar(bool enable) 
{ 
    if (enable) 
    { 
     TitleBarControl.Visibility = Visibility.Visible; 
     // Clicks on the BackgroundElement will be treated as clicks on the title bar. 
     Window.Current.SetTitleBar(BackgroundElement); 
    } 
    else 
    { 
     TitleBarControl.Visibility = Visibility.Collapsed; 
     Window.Current.SetTitleBar(null); 
    } 
} 

, но если я не называю фикцию (EnableControlsInTitleBar), образец все еще работают хорошо

В образце Джастин XL (https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/TitleBar) -м действительно, используют это:

Window.Current.SetTitleBar(BackgroundElement); 

, что меня озадачило, надеюсь, что кто-нибудь может дать мне объяснение, спасибо.

ответ

1

«но если я не называю фикцию (EnableControlsInTitleBar), образец все еще работают хорошо»

Я не думаю, что это правда. Есть несколько мест, которые будут называть эту функцию, поэтому я думаю, что вы не прокомментировали их все.

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

Window.Current.SetTitleBar(BackgroundElement); 

Возьмите образец MS в качестве примера здесь. Если мы запустим образец MS без каких-либо изменений, вы можете выполнить следующие действия:

Выберите «2) Выборочный рисунок» -> проверить «Продлить вид в строке заголовка» -> установите флажок «Включить элементы управления в заголовке bar "-> вы увидите следующую строку заголовка и сможете установить флажок в строке заголовка. enter image description here

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