Во вложенном WPF ToolBarPanel-ToolBar-Menu мы хотим избавиться от ручки захвата слева и области переполнения справа. они оба неактивны, но мы бы хотели, чтобы они вообще не отображались.
какие-нибудь идеи о том, как это сделать?
на случай, если мои термины не совсем верны, если вы посмотрите на изображение на рисунке 3 ссылки ниже, на самой нижней из трех панелей инструментов есть ручка слева от раскрывающегося списка и справа от самого правого кнопка есть переполнение.
Ответы:
Захват можно удалить, установив присоединенное свойство
ToolBarTray.IsLocked="True"
на панели инструментов.Чтобы удалить ToggleButton переполнения , вам нужно будет удалить его в настраиваемом ControlTemplate, как предлагает шестизначные переменные, что, если у вас есть blend или вы можете загрузить предварительный просмотр Blend 3, не слишком сложно.
Вы также можете просто скрыть кнопку в загруженном событии ToolBar, хотя какой бы маршрут вы ни выбрали, вы также должны установить прикрепленное свойство
ToolBar.OverflowMode="Never"
в меню ToolBar, чтобы элементы не могли случайно переполниться в недоступную область.И установите Overflow ToggleButton в свернутое положение:
источник
Вы можете использовать Blend, чтобы просто переопределить ControlTemplate для ToolBarPanel, Menu или ToolBar.
Теперь вы будете редактировать шаблон элемента управления для ToolBarPanel и можете установить видимость Collapsed для сигнала захвата и переполнения. Вы можете промыть и повторить для других элементов управления. Это немного отнимает много времени, но с Blend не так уж и сложно.
источник
Вы можете «удалить» переполнение, не предоставляя новый шаблон элемента управления, установив
ToolBar
отрицательные правые поля (и добавив отрицательное левое поле, чтобы оно не выглядело странно с закругленными левыми краями, но квадратными правыми краями). Затем добавьтеClipToBounds="True"
к,ToolBarPanel
который обрежет края панели инструментов, которые теперь выступают за пределы области панели.источник
Вместо того, чтобы полностью скрывать кнопку переполнения, я думаю, что лучше показывать ее только при необходимости. Это можно сделать, привязав его
Visibility
свойство к егоIsEnabled
свойству:(то же самое можно сделать в XAML, переопределив шаблон)
источник
Я только начинаю работать с WPF и не смог получить ни один из вышеперечисленных методов, чтобы скрыть стрелку переполнения (Visual Studio 2010). Единственное, что, казалось, повлияло на стрелку, был приведенный выше пример Toolbar_Load, но все, что сделал, - это превратил стрелку пустое место, которое выглядело так же плохо, как стрелка. Самый простой способ, который я мог понять, - это просто установить поля панели инструментов.
источник
Приведенные выше методы позволяют скрыть переполнение; Я использовал следующее, чтобы скрыть захват:
для горизонтальной компоновки и
для вертикального расположения. Поместите указанное выше после панели инструментов (или ToolbarTray, если вы ее используете)
Используйте любую ширину и высоту, которые необходимы для ваших кнопок.
Kaxaml отлично подходит для игры с этим.
источник