【问题标题】:Horizontal Scrolling buttons in WPF [duplicate]WPF中的水平滚动按钮[重复]
【发布时间】:2011-06-30 06:08:16
【问题描述】:

我有一个包含按钮的水平堆栈面板。

我需要能够左右滚动以使按钮在堆栈面板中旋转,因为按钮数量多于屏幕上的空间。

使用水平滚动条不是一种选择,因为它会破坏应用程序的外观并且不会以圆形方式一直旋转。

  • 如何将滚动条更改为仅在右侧有一个右箭头,在左侧有一个左箭头来处理滚动而不是完全旋转所有按钮。即,像普通滚动条一样工作,但看起来更好。 例如。 >

  • 或者有一种方法或以圆形方式旋转按钮,因此不是真正的开始或结束按钮的水平集合,并且用户可以通过某种方式移动他们可以看到的按钮的位置。

容器控件不必是堆栈面板,它最初只是按钮的最佳容器。

Xmal 和样式是我的首选,但使用后面的代码也没有问题。

【问题讨论】:

    标签: wpf button wpf-controls scroll styling


    【解决方案1】:

    制作自己的自定义滚动按钮有问题吗? 如果没有,你可以创建一个ItemsControl,在样式中将ItemsPanel设置为

        <ItemsPanelTemplate x:Key="ItemsPanelStyle">
            <StackPanel Orientation="Horizontal"></StackPanel>
         </ItemsPanelTemplate>
    

    在ItemsControl的ControlTemplate中

    <ScrollViewer
        x:Name="PART_ScrollViewer"
        HorizontalScrollBarVisibility="Hidden"
        VerticalScrollBarVisibility="Hidden"
        CanContentScroll="True"
        >
            <ItemsPresenter/>
        </ScrollViewer>
    

    您的工具栏按钮将是此 ItemsControl 的实际 ItemsSource。如果您现在在模板中创建一个按钮(向右滚动,您需要的滚动按钮),然后在其上执行命令

    ScrollViewer myViewer = GetTemplatedPart("PART_ScrollViewer");
    if(myViewer != null)
    {
        myViewer.LineRight();
    }
    

    这应该将每个元素向右滚动,直到按钮列表的末尾(注意优势:无论元素的宽度是多少)。 你可以在左边做同样的事情。

    HTH,丹尼尔

    【讨论】:

      猜你喜欢
      • 2021-01-05
      • 2014-04-27
      • 1970-01-01
      • 2010-09-26
      • 2023-02-09
      • 2014-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多