【问题标题】:combobox windows phone 8.1 no dropdown组合框 windows phone 8.1 没有下拉菜单
【发布时间】:2015-04-27 20:29:50
【问题描述】:

我在 StackPanel 中为 Windows Phone 8.1 添加了 XAML 中的组合框。在模拟器中运行应用程序时,不会显示下拉功能。如果我将 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"

组合框 ..

<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>

【问题讨论】:

    标签: xaml combobox windows-phone-8.1


    【解决方案1】:

    试试 LISTPICKER 控件。它的功能类似于 ComboBox 自动调整高度和宽度..

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

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

    xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;
    assembly=Microsoft.Phone.Controls.Toolkit"
    

    如果需要更多信息...恢复...

    【讨论】:

    • 我的 XAML 标头看起来像这样 - 见上文 - 我没有 Windows.phone.controls.toolkit 程序集
    • 检查我更新的答案..请添加对 Windows.phone.controls.toolkit 的参考...右键单击解决方案资源管理器中的参考..添加新参考..如果您的电脑上有 DLL,参考它,否则首先从网上下载并添加参考...让我知道..如果它解决了选择作为答案,那么它将对年轻的开发人员有所帮助..
    【解决方案2】:

    您应该为combobox 提供足够的高度以正常打开。如果您限制高度,combobox 不能超出该高度。所以它只会显示几个项目。 Height = "Auto" 表示它可以根据需要采用任何高度。因此combobox 将采用正确打开所需的高度。

    【讨论】:

      【解决方案3】:

      Combobox 是 Windows Phone/Windows 运行时环境,其行为与其 Silverlight/WPF 对应物不同。在这里,我们没有弹出窗口来显示要选择的项目列表。因此下拉菜单需要足够的空间来显示选项。

      最好将高度保留为 Auto,或 MinWidth 以满足任何宽度要求。

      【讨论】:

      • 在我的 Windows Phone 上运行的其他应用程序中,组合框最初以默认/选定值显示在框中,其他项目隐藏。如果我然后将焦点设置在控件上,则框“打开”并且其他项目也可见。我怎样才能达到这种“开放”的效果?在我的示例中,使用“自动”高度设置,该框最初显示所有项目,而不仅仅是默认/选定的项目。
      【解决方案4】:

      尽管如此,这是一个老问题,除了他们已经说过的话;一种将项目选择为默认值的方法,您需要将其“标记”如下:

      <ComboBoxItem IsSelected="True">Item 1</ComboBoxItem>
      

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

      <ComboBox x:Name="myComboBox" VerticalAlignment="Top" Width="350" FontFamily="open sans" FontSize="20" Height="Auto" Foreground="DarkGray" BorderBrush="Black">
                  <ComboBoxItem IsSelected="True">Item 1</ComboBoxItem>
                  <ComboBoxItem>Item 2</ComboBoxItem>
                  <ComboBoxItem>Item 3</ComboBoxItem>
                  <ComboBoxItem>Item 4</ComboBoxItem>
              </ComboBox>
      

      希望它可以帮助某人。问候

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-09
        • 1970-01-01
        相关资源
        最近更新 更多