Чтобы установить элемент управления Совет по обучению в своем приложении UWP, я сделал следующие шаги:
Microsoft.UI.Xaml через Nuget в моем проекте<XamlControlsResources xmlns = "using:Microsoft.UI.Xaml.Controls" /> в App.xaml.xmlns:controls = "using:Microsoft.UI.Xaml.Controls"Я реализовал Совет по обучению-control следующим образом:
<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 (вероятно, ошибку пользовательского интерфейса), которую я не понимаю:
В чем может быть проблема? Почему мой код не работает?
Редактировать:
Теперь я определил, что ошибка связана с App.xaml. После того, как я установил пакет Nuget Microsoft.UI.Xaml, ожидается, что в App.xaml будет добавлен следующий код:

Но у меня уже есть в App.xaml других настройках и ресурсах:

Когда я пытаюсь добавить только строку в 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?
@visc, пожалуйста, смотрите мое редактирование.
Какова цель проекта и минимальная версия? И версия сборки ОС?
@XavierXie-MSFT, Windows 10, версия 1809 (10.0; сборка 17763)





Я вставил ваш код в свой проект, и он сработал. Однако код, который вы указали выше, не имеет содержимого для кнопки запуска, поэтому отображается только верхняя кнопка. Вы уверены, что не ошибаетесь из-за кода в BackButton_Click, а не TeachingTipButton_OnClick?
Вы можете удалить повторяющуюся ссылку на Microsoft.UI.Xaml.Controls из Application.Resources.
Это не из-за сбоя функции. События кнопки работают хорошо, и у меня нет дубликатов в app.xaml. Я думаю, что у меня есть синтаксическая ошибка в моем app.xaml.
Я решил свою проблему, удалив Размер диалогового окна содержимого и Стиль кнопки по умолчанию, чтобы <Application.Resources> имел только <XamlControlsResources x: Key = "XamlControlsResources" xmlns = "using: Microsoft.UI.Xaml.Controls" /> как одну запись. В моем случае несколько записей в <Application.Resources> </Application.Resources>, к сожалению, не принимаются.
Ваш файл 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>
Можете ли вы предоставить репо или код с примером вашей проблемы?