0

我有一个值为 1..21 的 ComboBox

当我下拉组合框时,数字 1(项目 0)已启用,但所有其他项目都显示为灰色,我无法选择其中任何一个。事实上,我只能在滚动列表时看到它们的值——否则它们是完全透明的。

这是我的winrt-xmal:

            <ComboBox x:Name="cmbxInitialMapZoomSetting" Grid.Row="1" Grid.Column="1" Height="32" Margin="4" Width="120" HorizontalAlignment="Left" SelectionChanged="CmbxInitialMapZoomSetting_OnSelectionChanged">
                <Button Content="1"/>
                <Button Content="2"/>
                <Button Content="3"/>
        . . .
                <Button Content="19"/>
                <Button Content="20"/>
                <Button Content="21"/>
            </ComboBox>

...这是相关的代码:

private void CmbxInitialMapZoomSetting_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
    ApplicationData.Current.LocalSettings.Values["MapZoomSetting"] = cmbxInitialMapZoomSetting.SelectedValue;
}
4

1 回答 1

1

你有理由把Buttons 放进去ComboBox吗?您可以使用ComboBoxItems 代替:

<ComboBox x:Name="cmbxInitialMapZoomSetting" Height="32" Margin="4" Width="120" HorizontalAlignment="Left" SelectionChanged="CmbxInitialMapZoomSetting_OnSelectionChanged">
    <ComboBoxItem>1</ComboBoxItem>
    <ComboBoxItem>2</ComboBoxItem>
    <ComboBoxItem>3</ComboBoxItem>
    <ComboBoxItem>4</ComboBoxItem>
    <ComboBoxItem>5</ComboBoxItem>
</ComboBox>

您只需要对事件处理程序进行少量修改即可使其工作:

private void CmbxInitialMapZoomSetting_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
    ApplicationData.Current.LocalSettings.Values["MapZoomSetting"] = (cmbxInitialMapZoomSetting.SelectedValue as ComboBoxItem).Content.ToString();
}
于 2012-11-24T08:45:13.017 回答