1

我使用的是 Visual Studio express,所以没有 WPF 自定义控件库项目类型。使用 snoop 我可以看到根本没有使用该样式,但是如果我将样式放在 Window.Resources 中它可以工作。

我的结构如下:

MyApp.Controls
- Themes (Folder)
    - generic.xaml (build action "Content", no custom tool)
MyApp
  *References MyApp.Controls*

在 MyApp.Controls.Properties.Assemblyinfo.cs 的末尾,我有:

[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]

generic.xaml 内容:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:controls="clr-namespace:MyApp.Controls">
    <Style TargetType="{x:Type controls:LogView}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type controls:LogView}">
                    <TextBlock>Hello!</TextBlock>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>

日志视图类本身具有以下内容:

public class LogView : Control
{
    static LogView()
    {
        DefaultStyleKeyProperty.OverrideMetadata(
            typeof(LogView),
            new FrameworkPropertyMetadata(typeof(LogView)));
    }

有什么想法可能仍然缺失,或者我做错了什么?

4

0 回答 0