wpf combox 在哪里设置下拉框的宽度和高度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf combox 在哪里设置下拉框的宽度和高度相关的知识,希望对你有一定的参考价值。

条目里面东西非常多,结果导致下拉时横向铺满屏幕了,怎么给他限制到和控件一样宽?
还有高度加一点?

指正和补充一楼:

    ComboBox只有ItemTemplate,而不是ItemsTemplate

    DataTemplate里的TextBlock的Width跟ComboBox的width设为相同就可以了。

    如果ComboBox的宽度自适应,那么就在它的sizeChanged事件里去改TextBlock的宽度了。

    会用到VisualTree,网上可以查下。

    设置高度用MaxDropDownHeight就可以控制下拉框的最长拉的距离了。

 <ComboBox Width="100" Height="23" x:Name="cb" MaxDropDownHeight="150">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="Binding" TextWrapping="Wrap"  Width="150"/>
                </DataTemplate>
            </ComboBox.ItemTemplate>
        </ComboBox>

参考技术A combox是itemscontrol,横向满屏的话,你需要重新定义itemstemplate,使用textblokc来显示项文波,然后定义textblock的宽度,提示,是否换行,是否省略等。

<ComboBox>
<ComboBox.ItemsTemplate>
<DataTemplate>
<TextBlock Text="Bingding" ...../>这里就可以通过各种content控件,设置相应的样式来控制你的项的展示效果,
</DataTemplate>
</ComboBox.ItemsTemplate>
</ComboBox>

高度这个好好像MaxDropDownHeight这个来控制吧
参考技术B <ComboBoxItem Height=" " Width=" "/>

QCombobox设置下拉框的宽度

这几天写一个项目,里面用到qcombobox组件,其中下拉框含有129个子项,所以在点击的时候,一个下拉框就将整个电脑屏幕给占满了,很不好看并且在使用中会造成很大的苦恼。其实我就是想设置一个下拉框最大的高度,而且,剩下还未显示的子项就用滚动条来代替。

网上搜了很长时间,很多都是人云亦云,不能解决问题,所以,今天写下这个博客,一来,留给自己存档,而来,留给后来的同学,希望不要走我这条老路。

下拉框高度主要分两种。

一、下拉框子项的高度:

 

[cpp] view plain copy
 
  1. setStyleSheet("QComboBox { min-height: 40px; min-width: 60px; }"  
  2.         "QComboBox QAbstractItemView::item { min-height: 40px; min-width: 60px; }");  
  3. QComboBox *combo = new QComboBox(this);  
  4. combo->setView(new QListView());  

二、下拉框下拉列表的高度:

 

我们一般会用这条语句

ui->m_qcombxType->setMaxVisibleItems(10);

设置它下拉显示最多的子项,也就是下拉框的高度。但是在用的时候发现没反应,使用不了。在这条语句前面再加上一句

 ui->m_qcombxType->setEditable(true);

设置qcombobox为为可编辑属性。就可以了。

 

其中m_qcombxType为下拉框的名字。

http://blog.csdn.net/devil_box/article/details/46514007

以上是关于wpf combox 在哪里设置下拉框的宽度和高度的主要内容,如果未能解决你的问题,请参考以下文章

QT怎么设置QComboBox弹出下拉框的高度

QCombobox设置下拉框的宽度

c#里面ComBox下拉框里面比较里面是不是有这个值

c#里面,ComBox下拉框比较里面,是不是有这个值?

怎么调整select框得宽度和高度

如何使 WPF 数据模板填充列表框的整个宽度?