我正在使用 WPF 应用程序。我创建了一个自定义控件库,在其中自定义了所有控件,这意味着添加了一些功能并重新设计了它们的样式。我也以同样的方式重新设计了工具提示。我在其他项目中使用这个自定义库。除了工具提示之外,一切都工作正常。工具提示样式未得到应用。任何帮助请。
Edit:
我创建了一个名为 ToolTip 的自定义类,该类派生自 System.Windows.Controls.ToolTip,我也为自定义类声明了样式。现在我想知道如何将这种样式应用于每个控件的工具提示,我的意思是每当用户在控件上设置工具提示时我想创建我的工具提示对象。
in .cs:
public class ToolTip : System.Windows.Controls.ToolTip
{
static ToolTip()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(ToolTip), new FrameworkPropertyMetadata(typeof(ToolTip)));
}
}
在.xaml(资源字典)中:
<Style TargetType="{x:Type local:ToolTip}">
<Setter Property="VerticalOffset" Value="-2" />
<Setter Property="HorizontalOffset" Value="20" />
<Setter Property="Height" Value="35"></Setter>
<Setter Property="Placement" Value="Top" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:ToolTip}">
<Grid Name="Border" Background="Transparent" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}">
<Rectangle RadiusX="7.5" RadiusY="7.5">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0.5,-0.5" EndPoint="0.547,0.913">
<GradientStop Color="#FFEEEEEE" Offset="0"/>
<GradientStop Color="#FFBBBBBB" Offset="1"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<ContentPresenter Margin="10,0,10,0" HorizontalAlignment="Center" VerticalAlignment="Center" TextBlock.Foreground="Black" TextBlock.FontSize="12" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
任何帮助请。
将默认的工具提示样式放置在单独程序集中的共享 ResourceDictionary 中将允许多个项目使用它。您可以使用以下命令将 SharedStyleLibrary.dll 的 Resources 文件夹中的 MyDefaultStyles ResourceDictionary 合并到 App.xaml 中:
<App.Resources>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/SharedStyleLibrary;component/Resources/MyDefaultStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</App.Resources>
如果 MyDefaultStyles 包含隐式 ToolTip 样式 (<Style TargetType="{x:Type ToolTip}">
) 它将被用作默认值。您还可以通过给样式一个 x:Key 来更本地化地定位它,然后在您希望它应用的任何范围(即窗口、用户控件、单一布局面板)中创建隐式工具提示样式:
<Style TargetType="{x:Type ToolTip}" BasedOn="{StaticResource ExternalLibraryNamedStyle}">...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)