WPF - 样式行为 - 消失的全局样式

时间:2013-09-27 20:54:02

标签: c# wpf styles mergeddictionaries

强文我将一个样式定义为MergedDictionary(见下文)。它确实将光标样式添加到我的应用程序中的所有分割条。它完美地工作......直到......

问题是风格突然消失了。我有一个ActiPro DockSite,其文档包含其他第三方控件。当我向dockSite添加文档时,样式消失。

我试过了:

  1. 清理App.Resources.MergedDictionaries
  2. 使用新的ResourceDictionary
  3. 填充App.Resources.MergedDictionaries
  4. 使用mainWindow.ApplyTemplate();
  5. 重新应用窗口模板

    但没有成功。风格不想再出现。它隐藏在微软风格的应用程序行为的黑暗中,我真的不知道。但有一点可以肯定的是,我的MergedDictionary仍然活着,但不想表现出来。

    它可能来自任何地方。但是我怎样才能找到有问题的代码以及如何解决这个问题呢? 任何人都可以帮助我!!!我很绝望。 谢谢!

      

    更新2013-09-30 。我偷窥并在底部添加结果。但我发现了一些非常有趣的东西,在做了一些鼠标互动后,风格又回来了。事实上,我认为它永远不会消失。唯一的问题可能是来自其他制造商的行为应该进行鼠标捕获或类似的东西会覆盖我的默认鼠标样式。我会做更多的调查。

    <Style TargetType="GridSplitter">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="GridSplitter">
    
                    <Rectangle Fill="{TemplateBinding Background}"></Rectangle>
    
                    <ControlTemplate.Triggers>
                        <Trigger Property="ResizeDirection" Value="Columns">
                            <Setter Property="Cursor" Value="SizeNS"></Setter>
                        </Trigger>
                        <Trigger Property="ResizeDirection" Value="Rows">
                            <Setter Property="Cursor" Value="SizeWE"></Setter>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    

    之前的Snoop结果:

    enter image description here

    Snoop结果(对我而言似乎相同):

    enter image description here

1 个答案:

答案 0 :(得分:0)

我找到了自己的答案。问题不是一种消失的风格,而是一个代码18.问题是距离屏幕18英寸(距离50厘米)......我!

我在加载DockingDocument时将Mouse.OverrideCursor更改为Hourglass,但将OverrideMouse设置为Mouses.Arrow而不是null。

感谢Eran的支持。窥探它告诉我,风格仍然存在,让我在其他地方搜索。