为 UWP 应用程序实现 TeachingTip 控件
Implementing TeachingTip control for a UWP App
要在我的 UWP 应用程序中安装 TeachingTip-control,我已完成以下步骤:
- 在我的项目中通过 Nuget 安装
Microsoft.UI.Xaml
包
- 将
<XamlControlsResources xmlns = "using:Microsoft.UI.Xaml.Controls" />
添加到 App.xaml
。
- 导入的命名空间
xmlns:controls="using:Microsoft.UI.Xaml.Controls"
我实现了 TeachingTip-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
错误(可能是 UI 错误),我不明白:
可能是什么问题?为什么我的代码不起作用?
编辑:
我现在确定错误是由于 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
如何在我的 App.xaml 中正确添加资源 <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"/>
?
我将你的代码粘贴到我的项目中并且它有效。但是,您在上面提供的代码没有触发按钮的内容,因此唯一出现的按钮是顶部按钮。您确定您没有因为 BackButton_Click
中的代码而不是 TeachingTipButton_OnClick
中的代码而失败吗?
您可以从 Application.Resources
中删除对 Microsoft.UI.Xaml.Controls
的重复引用
我通过删除 ContentDialog Size 样式 和 Default Button 样式 解决了我的问题,这样 <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>
要在我的 UWP 应用程序中安装 TeachingTip-control,我已完成以下步骤:
- 在我的项目中通过 Nuget 安装
Microsoft.UI.Xaml
包 - 将
<XamlControlsResources xmlns = "using:Microsoft.UI.Xaml.Controls" />
添加到App.xaml
。 - 导入的命名空间
xmlns:controls="using:Microsoft.UI.Xaml.Controls"
我实现了 TeachingTip-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
错误(可能是 UI 错误),我不明白:
可能是什么问题?为什么我的代码不起作用?
编辑:
我现在确定错误是由于 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
如何在我的 App.xaml 中正确添加资源 <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"/>
?
我将你的代码粘贴到我的项目中并且它有效。但是,您在上面提供的代码没有触发按钮的内容,因此唯一出现的按钮是顶部按钮。您确定您没有因为 BackButton_Click
中的代码而不是 TeachingTipButton_OnClick
中的代码而失败吗?
您可以从 Application.Resources
Microsoft.UI.Xaml.Controls
的重复引用
我通过删除 ContentDialog Size 样式 和 Default Button 样式 解决了我的问题,这样 <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>