2010-04-29 4 views
0

У меня есть элемент управления WPF ToolBar, который имеет стекановую панель, закрепленную справа. Я использую этот элемент управления панели инструментов в трех других элементах управления WPF, добавляя в XAML. Когда я проверяю в XAML, расположение Stackpanel одинаково для всех 3 элементов управления. Но когда я запускаю свое приложение, для одного из трех элементов управления StackPanel в элементе управления ToolBar переходит влево.Изменения местоположения StackPanel во время выполнения

<StackPanel DockPanel.Dock="Right" Orientation="Horizontal" HorizontalAlignment="Right" Name="stackButtons" > 

Есть идеи? Цените свою помощь ..

+0

Итак, каково содержание ваших StackPanels? Особенно тот, который * «сдвигается влево» *? И что это за окружающая панель? – gehho

ответ

1

Я попробую три догадки.

1) У вас есть явный код, который изменяет свойство DockPanel.Dock. (Вряд ли, я соглашусь)

2) Панель стека фактически не сдвигается влево. Прилагаемый DockPanel фактически сдвигается влево, и он по-прежнему остается самым большим контролем в левой панели док-станции.

3) Окно, содержащее панель док-станции, имеет некоторые дополнительные стили по умолчанию (стили, которые имеют TargetType, но не клавиши), и эти стили каким-то образом закручивают вещи. Это маловероятно, поскольку вы устанавливаете HorizontalAlignment как явное свойство, а явные свойства переопределяют свойства стиля. Но стили могут постоянно удивлять.

В любом случае, эти штрихи в темноте могут дать вам представление о том, где искать.

+0

Я думаю, 2) является наиболее вероятной причиной. @Vinjamuri: Чтобы проверить 2), вы можете установить свойство Background для всех соответствующих панелей на другое значение, например, одно значение «Зеленый», рядом с «Красный», другое - «Синее». Затем отлаживайте, и вы увидите, сколько места они занимают. – gehho

Смежные вопросы