无法获取xaml的滚动视图CanContentScroll = true可以正常工作 [英] Can't get xaml's scroll view CanContentScroll = true to work

查看:76
本文介绍了无法获取xaml的滚动视图CanContentScroll = true可以正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在更新一个需要在实现中修复的显示。我在使用ScrollViewer时遇到问题,该ScrollViewer包含StackPanel(VerticalCart)中保存的基于图像的元素。


没有可见的滚动条。它使用按钮上下滚动。当前实现使用CanContentScroll = false。主要问题是下面的代码导致垂直偏移不是整数值,并且在使用时会进一步减少
。双数学有一些事情发生。


它试图用 


Xaml进行滚动:


  ; &NBSP; &NBSP; < Canvas x:Name =" ScrollPanel"高度= QUOT; 630" Canvas.Left = QUOT; 0" Canvas.Top = QUOT 68 QUOT;宽度=" 425">

  &NBSP; &NBSP; &NBSP; < local:AnimationHelperControl x:Name =" ScrollViewerVerticalOffset" />

  &NBSP; &NBSP; &NBSP; < ScrollViewer 

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; x:Name =" VerticalCartScroller"

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; CanContentScroll = QUOT;真"&NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;  

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; PanningMode =" VerticalOnly" 

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; VerticalScrollBarVisibility =" Hidden" 

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; Horizo​​ntalScrollBarVisibility =" Hidden" 

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;宽度= QUOT; 400"高度="624" 

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; Style =" {StaticResource LeftScrollViewer}"

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; >

  &NBSP; &NBSP; &NBSP; &NBSP; <&的StackPanel NBSP; ClipToBounds = QUOT;真" X:名称= QUOT; VerticalCart"取向= QUOT;垂直"保证金=" 0" />

  &NBSP; &NBSP; &NBSP; < / ScrollViewer>

  &NBSP; &NBSP; < / Canvas>




向后滚动代码。向上滚动有类似内容:


  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;故事板sb =新故事板();

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; DoubleAnimation da = new DoubleAnimation();

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; da.From = VerticalCartScroller.VerticalOffset;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; da.To = VerticalCartScroller.VerticalOffset + verticalCartItemHeight;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; QuarticEase easingFunction = new QuarticEase();

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; easingFunction.EasingMode = EasingMode.EaseOut;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; da.EasingFunction = easingFunction;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; da.Duration = new Duration(TimeSpan.FromMilliseconds(500));

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; Storyboard.SetTargetName(da,ScrollViewerVerticalOffset.Name);

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; Storyboard.SetTargetProperty(da,new PropertyPath(AnimationHelperControl.DoubleValueProperty));

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; sb.Children.Add(da);

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; this.Resources.Add(" ScrollingAnimation",sb);

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; sb.Completed + = ScrollCompleted;

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; sb.Begin(this,true);
$


我想使用CanContentScroll = true并执行基于项目的滚动来消除。如果我能做到这一点,我可能会放弃动画,但我必须与客户联系。即使我设置了CanContentScroll = true,它仍然按照滚动而不是项目滚动来进行像素


任何帮助都会受到赞赏,即使只是朝着正确的方向前进。 / p>



Intercall,Inc。

解决方案

你好Matthew Ireland,


感谢您在此发帖。


由于您的问题与WPF更相关,我将将其移至WPF论坛以获得适当的支持。


https://social.msdn.microsoft.com/Forums/en-US/home?forum=wpf&filter=alltypes&sort=lastpostdesc


Visual C#论坛讨论并询问有关C#编程语言,IDE,库,示例和工具的问题。


最好的问候,


Wendy


I am updating a display that needs some fixes in the implementation. I am having trouble with a ScrollViewer that contains image based elements held in a StackPanel (VerticalCart).

There are no scrollbars visible. It uses buttons to scroll up and down. The current implementation uses CanContentScroll = false. The main problem is that the code below results in vertical offsets that are not integeral values and get further and further off as it gets used. There is something going on with double math.

It tries to do the scrolling with 

Xaml:

      <Canvas x:Name="ScrollPanel" Height="630" Canvas.Left="0" Canvas.Top="68" Width="425">
        <local:AnimationHelperControl x:Name="ScrollViewerVerticalOffset"/>
        <ScrollViewer 
                    x:Name="VerticalCartScroller"
                    CanContentScroll="True"                       
                    PanningMode="VerticalOnly" 
                    VerticalScrollBarVisibility="Hidden" 
                    HorizontalScrollBarVisibility="Hidden" 
                    Width="400" Height="624" 
                    Style="{StaticResource LeftScrollViewer}"
                    >
          <StackPanel  ClipToBounds="True" x:Name="VerticalCart" Orientation="Vertical" Margin="0"/>
        </ScrollViewer>
      </Canvas>


Code behind for scrolling down. There is something similar for scrolling up:

                Storyboard sb = new Storyboard();
                DoubleAnimation da = new DoubleAnimation();
                da.From = VerticalCartScroller.VerticalOffset;
                da.To = VerticalCartScroller.VerticalOffset + verticalCartItemHeight;
                QuarticEase easingFunction = new QuarticEase();
                easingFunction.EasingMode = EasingMode.EaseOut;
                da.EasingFunction = easingFunction;
                da.Duration = new Duration(TimeSpan.FromMilliseconds(500));
                Storyboard.SetTargetName(da, ScrollViewerVerticalOffset.Name);
                Storyboard.SetTargetProperty(da, new PropertyPath(AnimationHelperControl.DoubleValueProperty));
                sb.Children.Add(da);
                this.Resources.Add("ScrollingAnimation", sb);
                sb.Completed += ScrollCompleted;
                sb.Begin(this, true);

I would like to use CanContentScroll = true and doing item based scrolling to eliminate. If I can do that I may be able to ditch the animation, but I will have to check with the customer. Even when I do set CanContentScroll = true, it is still doing pixel scrolling rather than item scrolling.

Any help is appreciated even just to get headed in the right direction.


Intercall, Inc.

解决方案

Hi Matthew Ireland,

Thank you for posting here.

Since your question is more related to WPF, I will move it to WPF forum for suitable support.

https://social.msdn.microsoft.com/Forums/en-US/home?forum=wpf&filter=alltypes&sort=lastpostdesc

The Visual C# forum discuss and ask questions about the C# programming language, IDE, libraries, samples, and tools.

Best Regards,

Wendy


这篇关于无法获取xaml的滚动视图CanContentScroll = true可以正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆