gpt4 book ai didi

xaml - WinRT 中组合框的奇怪行为

转载 作者:行者123 更新时间:2023-12-02 15:46:06 27 4
gpt4 key购买 nike

WinRT 中的组合框有一个 CarouselPanel 类型的默认 ItemsPanel。这使得 Windows 8.1 应用程序在滚动组合框项目时出现“无限循环”。如果您不想要这种行为,有很多博客文章解释了如何“修复它”。

例如:Cancel WinRT ComboBox infinte scroll effect或:http://netitude.bc3tech.net/2013/04/12/windows-8s-combobox-and-the-carouselpanel/

此解决方案的问题在于,您在组合框中的第一项上会出现奇怪的行为。如何重现:

  • 创建一个新的空白 Windows 8.1 应用
  • 在 mainpage.xaml 中放置:

    <TimePicker Time="0" HorizontalAlignment="Center" VerticalAlignment="Center"/>
  • 创建一个 style.xaml 资源字典,如下所示:

    <Style TargetType="ComboBox">
    <Style.Setters>
    <Setter Property="ItemsPanel">
    <Setter.Value>
    <ItemsPanelTemplate>
    <StackPanel Orientation="Vertical"/>
    </ItemsPanelTemplate>
    </Setter.Value>
    </Setter>
    </Style.Setters>
    </Style>
  • 现在启动应用程序,选择列表中的一项(例如“05”分钟),然后选择同一下拉列表中的第一项(例如“00”分钟)。下拉控件中的文本现在将消失。

有人知道如何解决这个问题吗?如果我将组合框项目面板的样式更改回 CarouselPanel,它就可以工作(但当然会无限循环)。

最佳答案

刚刚使用 VirtualizingStackPanel 代替 StackPanel 纠正了此问题。我们必须设置一个大小,否则它会占据屏幕的所有宽度。

<VirtualizingStackPanel HorizontalAlignment="Center" Width="150"/>

我们没有尝试获得更灵活的解决方案,因为我们还不需要它

希望对你有帮助

关于xaml - WinRT 中组合框的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26968357/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com