修改 ColorPicker 调色板的大小

Modify the size of ColorPicker palette

由于某些 GUI 大小限制,我想修改 XCeed ColorPicker 的调色板大小。按钮的宽度小于下拉弹出窗口;我只想更改弹出窗口的宽度(或高度)以强加可用标准颜色的布局。默认情况下我们有 10 列颜色,我想要 6 或 8 列颜色。有什么办法吗?

在 ColorPicker 的默认模板中,您会注意到一个名为 "PART_AvailableColors" 的列表框。该 ListBox 使用名为 "ColorListStyle" 的样式。在该样式中,我们将 ItemsPanel 属性 设置为宽度为 200 的 WrapPanel。

<Style x:Key="ColorListStyle" TargetType="ListBox">
    <!-- ... --->
    <Setter Property="ItemsPanel">
        <Setter.Value>
            <ItemsPanelTemplate>
                <WrapPanel Width="200" />
            </ItemsPanelTemplate>
        </Setter.Value>
    </Setter>
    <!-- ... --->
</Style>

不幸的是,目前没有内置的方法可以轻松更改 ColorPicker 的布局,所以现在我能提供的唯一选择是重做代码中的 Template/Style 以设置不同的宽度在 WrapPanel 上。

可以在工具包附带的源代码中找到默认模板和样式。

编辑:在 ColorPicker 上添加了 属性 MaxDropDownWidth 以自定义弹出窗口的宽度(3.1 版新增)。