我正在为我制作一个DLL,以简化我的工作,因为我在每个项目中都使用了类,所以当我可以使用一个DLL完成工作时,为什么要复制它们呢?
我还想为它添加一些控件,按钮,所以就像这样:
我已经创建了一个按钮,它运行良好,但是我想为它添加一个自定义样式,当鼠标悬停时禁用背景突出显示,现在我以前使用过这种风格并且运行良好,但在以前我会将样式添加到app.xaml资源中,然后将样式设置为按钮,如:
Style =“{StaticResource DisableBackgroundHighlight}”
但由于DLL没有app.xaml,我该怎么办,如何在DLL内部的控件中添加样式? 我在谷歌上发现的只是,将DLL中的资源引用到WPF应用程序的app.xaml,但这不是我想要的, 我试过这个:
<Button x:Class="SRX.Windows.Controls.SRXButton"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:SRX.Windows.Controls"
mc:Ignorable="d"
d:DesignHeight="35" d:DesignWidth="100" Content="OK" Background="White" BorderBrush="Blue" Foreground="Blue" MouseEnter="Button_MouseEnter" MouseLeave="Button_MouseLeave" Style="{StaticResource DisableBackgroundHighlight}">
<Button.Resources>
<Style x:Key="DisableBackgroundHighlight" TargetType="Button">
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Cursor" Value="Hand" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Name="border" BorderThickness="0" BorderBrush="Black" Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Opacity" Value="0.8" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Resources>
但它不起作用,它显示“资源”DisableBackgroundHighlight“无法解析”。尽管它编译但在启动时崩溃。 如果我错过了问题解释中的某些内容,请让我解决,提前谢谢。
答案 0 :(得分:1)