Реализация элемента управления TeachingTip для приложения UWP - PullRequest
0 голосов
/ 19 июня 2019

Чтобы установить TeachingTip -контроль в моем приложении UWP, я сделал следующие шаги:

  1. установлен Microsoft.UI.Xaml пакет через Nugetв моем проекте
  2. Добавлено <XamlControlsResources xmlns = "using:Microsoft.UI.Xaml.Controls" /> в App.xaml.
  3. Импортированное пространство имен xmlns:controls="using:Microsoft.UI.Xaml.Controls"

Я реализовал TeachingTip -контрольследующим образом:

<Button x:Name="BackButton"
        Background="{x:Null}"
        Content="Back"
        Click="BackButton_Click">
    <Button.Resources>
        <controls:TeachingTip x:Name="ToggleThemeTeachingTip"
                              Target="{x:Bind BackButton}"
                              Title="Change themes without hassle"
                              Subtitle="It's easier than ever to see control samples in both light and dark theme!"
                              CloseButtonContent="Got it!">
        </controls:TeachingTip>
    </Button.Resources>
</Button>

<Button x:Name="TeachingTipButton"
        Click="TeachingTipButton_OnClick">
</Button>


private void TeachingTipButton_OnClick(object sender, RoutedEventArgs e)
{
    ToggleThemeTeachingTip.IsOpen = true;
}

Когда я вызываю функцию, я получаю следующую ошибку DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION (вероятно, ошибку пользовательского интерфейса), которую я не понимаю:

enter image description here

В чем может быть проблема?Почему мой код не работает?

Редактировать: Теперь я определил, что ошибка связана с App.xaml.После установки пакета Nuget Microsoft.UI.Xaml ожидается добавление следующего кода в App.xaml: enter image description here

Но у меня уже есть App.xaml другие настройки иресурсы: enter image description here

Когда я пытаюсь добавить только строку в App.xaml, возникает ключевая ошибка:

<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"/>

Если я даю записи ресурсаключ как этот:

<XamlControlsResources x: Key = "XamlControlsResources" xmlns = "using: Microsoft.UI.Xaml.Controls" />

Это приводит к совершенно другой ошибке:

Windows.UI.Xaml.Markup.XamlParseException: "The text for this error is not found.

Can not find a Resource with the Name / Key TeachingTipBackgroundBrush

Как правильно добавить ресурс <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"/> в мой файл App.xaml?

Ответы [ 3 ]

0 голосов
/ 21 июня 2019

Я решил свою проблему, удалив ContentDialog Size style и Стиль кнопок по умолчанию , так что <Application.Resources> имеет только <XamlControlsResources x: Key = "XamlControlsResources" xmlns = "using: Microsoft.UI.Xaml.Controls" /> в качестве одной записи.В моем случае несколько записей в <Application.Resources> </Application.Resources>, к сожалению, не принимаются.

0 голосов
/ 28 июня 2019

Ваш файл App.xaml должен выглядеть следующим образом:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
        </ResourceDictionary.MergedDictionaries>
        <!-- Other styles here -->
        <Style TargetType="Button">
          ...
        </Style>
    </ResourceDictionary>
</Application.Resources>
0 голосов
/ 20 июня 2019

Я вставил ваш код в мой проект, и он сработал.Однако приведенный выше код не имеет содержимого для кнопки запуска, поэтому единственной кнопкой, которая появляется, является верхняя кнопка.Вы уверены, что не ошиблись из-за кода в BackButton_Click, а не TeachingTipButton_OnClick?

Вы можете удалить дублирующую ссылку на Microsoft.UI.Xaml.Controls из Application.Resources

...