Странный внутренний отступ WPF WrapPanel - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть WPF WrapPanel и панель инструментов внутри. WrapPanel красного цвета, а панель инструментов синего цвета.

enter image description here

Может ли кто-нибудь объяснить мне, откуда появился отступ WrapPanel сверху, слева и т. Д., И как я могу его удалить?

Вот пример кода изображения:

<WrapPanel Orientation="Horizontal" Background="Red">
       <ToolBar x:Name="tFirst" Background="Blue" ToolBarTray.IsLocked="True">
         <Button ToolTip="New" Content="New" />
         <Button ToolTip="Save" Content="Save" />
         <Button ToolTip="Delete" Content="Delete" />
       </ToolBar>
</WrapPanel>

Заранее спасибо.

ОБНОВЛЕНИЕ: проблема только в Панели инструментов, я просто изменил WrapPanel на DockPanel, и проблема все еще существует.

1 Ответ

1 голос
/ 02 ноября 2011

Вероятно, это что-то из стандартного встроенного шаблона элемента управления ToolBar.

Быстрое исправление, очевидно, состоит в том, чтобы установить Margin в -2, например.

ToolBar внутренне довольно сложный, он состоит из Grid, Border, DockPanel и т. Д., Вы можете попробовать пройти через него VisualTreeHelper. Например:

var dockPanel = VisualTreeHelper.GetChild(VisualTreeHelper.GetChild(VisualTreeHelper.GetChild(tFirst, 0), 1), 0);

возвращает объект DockPanel. Вы можете попробовать найти элемент управления с Margin или Padding больше 0, и, если вам это удастся, вы, возможно, даже сбросите его из кода (что-то вроде: (dockPanel as DockPanel).Margin = 0;)

В XAML я бы попробовал переопределить ToolBar's шаблон управления (как показано в http://msdn.microsoft.com/en-us/library/aa970772(v=vs.85).aspx - хотя этот пример, конечно, слишком сложен для вашей цели, принцип тот же).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...