2012-03-26 4 views
3

Я использую UserControl, который содержит Canvas. Как ребенок холста, есть контент-контроль с adorner. Почему adorner не видно, возможно, слой adorner задерживается. Все создано и прилагается. Уровень adorner очень высок в визуальном дереве. Уровень adorner размещен вне UserControl.Adorner не отображается

Я знаю, что это создано, потому что я реализовал основной механизм движения, который работает, но декоратор никогда не появляется.

Что нужно сделать, чтобы показать декоратор?

+1

Насколько я вижу из http://msdn.microsoft.com/en -us/library/ms743737.aspx Adorner обычно реализуется внутри метода, переопределяя OnRender. Это то, что вы делаете? – Klaus78

+1

Да, я. Наконец я нашел причину. Когда я добавил словарь объединенного ресурса в MainWindow приложения, а не только в ресурсы пользовательского пользовательского контроля, то наконец-то появился adorner. – Patrik

+0

@patrik Я столкнулся с той же проблемой, объясните подробнее ... –

ответ

2

Окно WPF по умолчанию имеет AdornerDecorator, но usercontrol этого не делает. Таким образом, вы просто должны обернуть холст с декоратором Adorner в вашем usercontrol.xaml:

<AdornerDecorator ClipToBounds="True"> 
      <Canvas x:Name="DesignerCanvas" 
      ClipToBounds="True" 
      SnapsToDevicePixels="True"/> 
</AdornerDecorator> 

Подробнее: https://social.msdn.microsoft.com/Forums/vstudio/en-US/43a2565d-df21-4cf3-aa2a-240d67662945/please-help-me-resolve-a-mistery-with-resource-adorner-and-usercontrol-a-bug?forum=wpf