combobox windows phone 8.1没有下拉菜单

时间:2015-04-27 20:29:50

标签: xaml combobox windows-phone-8.1

我在StackPanel的Windows Phone 8.1的XAML中添加了一个ComboBox。在模拟器中运行应用程序时,不会显示下拉功能。如果我将StackPanel限制为高度,例如“70”,仅显示2个第一项。如果我说Height =“Auto”,则会立即显示所有项目。

如何启用下拉功能?

部首:

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

Combobox ..

<StackPanel Grid.Row="4" Width="350" HorizontalAlignment="Left">
            <TextBlock x:Name="PlayerListPanel" TextWrapping="Wrap" Text="Select a Player" VerticalAlignment="Center" Margin="2,0,0,0"  HorizontalAlignment="Left"/>
            <ComboBox Name="StartPlayerComboBox" BorderThickness="1" >
                <ComboBoxItem Tag="PLAYER1">Player 1</ComboBoxItem>
                <ComboBoxItem Tag="PLAYER2">Player 2</ComboBoxItem>
                <ComboBoxItem Tag="PLAYER3">Player 3</ComboBoxItem>
                <ComboBoxItem Tag="Dummy1">1</ComboBoxItem>
                <ComboBoxItem Tag="Dummy2">2</ComboBoxItem>
                <ComboBoxItem Tag="Dummy3">3</ComboBoxItem>
            </ComboBox>
        </StackPanel>

4 个答案:

答案 0 :(得分:2)

尝试LISTPICKER控制..它的功能类似于ComboBox,具有自动调整高度和宽度..

\

在Xaml页面中使用此包含以下命名空间.. ADD windows phone toolkit(click it)

<toolkit:ListPicker>
<toolkit:ListPickerItem Content="A+" />
<toolkit:ListPickerItem Content="B+" />
<toolkit:ListPickerItem Content="O+" />
</toolkit:ListPicker>

enter image description here

如果进一步的信息要求......还原......

答案 1 :(得分:0)

您应该为combobox正确打开提供足够的高度。如果限制高度,combobox不能超出范围。因此它只显示几个项目。高度=&#34;自动&#34;意味着它可以采取它所要求的任何高度。因此combobox将获得正确打开所需的高度。

答案 2 :(得分:0)

Combobox是Windows Phone / Windows RunTime环境的行为与Silverlight / WPF对应部分不同。在这里,我们没有Popup来显示要选择的项目列表。因此,下拉列表需要足够的空间来显示选项。

最好的办法是将高度保留为自动,或将MinWidth保留为任何宽度要求。

答案 3 :(得分:0)

即便如此,除了他们已经说过的话,这已经是一个老问题了;如果要将某个项目选为默认项目,则需要将其“标记”如下:

var tgl = false;

function toggle(item) {
  item === true ? item = false : item = true;
  return item;
}

document.addEventListener('keydown',function(e){
  var key = e.keyCode || e.which;
  if(key == 81)
    tgl = toggle(tgl);
}

然后,一旦你点击它,你将显示所有其他组合框项目(如果你定义它们):

var tgl = "off";

function toggle(item) {
  item === "on" ? item = "off" : item = "on";
  return item;
}

document.addEventListener('keydown',function(e){
  var key = e.keyCode || e.which;
  if(key == 81)
    tgl = toggle(tgl);
}

希望它有所帮助。此致