2013-09-27 2 views
1

сильный текст У меня есть стиль, определенный в MergedDictionary (см. Ниже). Он добавляет стиль курсора во все панели разметки в моем приложении. Он отлично работает ... До тех пор, пока ...WPF - Стиль поведения - Глобальный стиль, который исчезает

Проблема в том, что стиль внезапно исчезает. У меня есть ActiPro DockSite с документом, который включает в себя другие сторонние элементы управления. Когда я добавляю документ в свой dockSite, стиль исчезает.

Я пробовал:

  1. Чистые App.Resources.MergedDictionaries
  2. Заполните App.Resources.MergedDictionaries с новым набором ResourceDictionary
  3. шаблон окна с mainWindow.ApplyTemplate Повторно();

Но без успеха. Стиль не хочет появляться снова. Он застрял где-то в темноте поведения приложения в стиле Microsoft, я действительно не знаю. Но одна вещь наверняка, мой 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

+0

2 вещи, сначала попытайтесь добавить к вашему стилю BasedOn = «{StaticResource {х: Тип GridSplitter}}», Во-вторых, подглядывать пойти Стиль собственности и вникать в это источник, дайте мне знать, что вы придумали для дальнейшей помощи. –

+0

Я не могу добавить BasedOn = "{StaticResource {x: Тип GridSplitter}}". В нем говорится, что петля обнаружена. Я не думал об этом. Я попробую сегодня утром. Благодарю. –

ответ

0

я нашел свой ответ. Проблема не в стиле, который исчезает, а в коде 18. Проблема была на расстоянии 18 дюймов (около 50 см) от экрана ... ME !!!

Я изменил Mouse.OverrideCursor на песочные часы при загрузке DockingDocument, но вернул OverrideMouse к Mouses.Arrow вместо null.

Благодаря Eran для его поддержки. Snooping это сказал мне, что стиль все еще был там и заставил меня искать где-то еще.