Я изучаю WPF, и контроль RibbonComboBox
дал мне несколько недель головных болей.Styling RibbonComboBox содержимое
У меня наконец-то появилась базовая функциональность. Теперь я застрял в том, что должно быть тривиально, но, как и все остальные WPF, нет.
Вот часть моего XAML:
<RibbonGroup Header="Category">
<RibbonComboBox Label="Category:" HorizontalContentAlignment="Left" SelectionBoxWidth="250">
<RibbonGallery ColumnsStretchToFill="True" SelectedItem="{Binding SelectedCategory}">
<RibbonGalleryCategory DisplayMemberPath="Text" MaxColumnCount="1" ItemsSource="{Binding Categories}">
</RibbonGalleryCategory>
</RibbonGallery>
</RibbonComboBox>
<RibbonComboBox Label="Subcategory:" HorizontalContentAlignment="Left" SelectionBoxWidth="250">
<RibbonGallery MaxColumnCount="1" ColumnsStretchToFill="True" SelectedItem="{Binding SelectedSubcategory}">
<RibbonGalleryCategory DisplayMemberPath="Text" ItemsSource="{Binding Subcategories}">
</RibbonGalleryCategory>
</RibbonGallery>
</RibbonComboBox>
<RibbonButton Label="Edit Categories" Command="local:EditCommands.Categories" SmallImageSource="Images\categories_sm.png" ToolTipTitle="Edit Categories" ToolTipDescription="Add, edit or delete categories and subcategories" ToolTipImageSource="Images\categories_sm.png"></RibbonButton>
</RibbonGroup>
Проблема у меня была в том, что часть выбора выпадающего списка выпадающего только по ширине текста. (Я хочу, чтобы он был таким же широким, как и полный снимок.)
Как вы можете видеть, я добавил некоторые атрибуты MaxColumnCount
и ColumnStretchToFill
. Они изначально похоже на работу, но ...
Когда код обновляет содержимое, установка
ColumnStretchToFill
, кажется, отбрасывают, а строка выбора снова только по ширине текста выбора.Существует иерархия
RibbonComboBox
,RibbonGallery
иRibbonGalleryCategory
. Я не мог понять, почему. Более одного из этих элементов имеют атрибутыMaxColumnCount
иColumnStretchToFill
(а также другие атрибуты комментариев). Как узнать, для какого элемента я должен установить эти атрибуты?
Не знаю, почему мне нужно установить три свойства, чтобы заставить их принять полную ширину , Но, в то время как ваши изменения делают это, после того, как я поднимаю 'OnPropertyChanged' для' ItemsSource', и список обновляется, подсветка больше не потребляет полную ширину. Значит, это не помогло. –
Можете ли вы добавить материал для просмотра? Поэтому я могу воспроизвести лучше. Кроме того, я не могу воспроизвести ваше поведение. – lokusking
Я могу попытаться что-то собрать, но сейчас есть много кода, и все это незавершенное и переходное. Чтобы уточнить, если вы добавите кнопку, которая запускает код для установки нового 'ItemsSource', строка выделения по-прежнему занимает всю ширину выпадающего списка для вас? (Обратите внимание, что в моем исходном XAML я устанавливаю атрибуты 'HorizontalContentAlignment' и' SelectionBoxWidth' для моего 'RibbonComboBox'.) –