gpt4 book ai didi

c# - ItemsControl 中元素的 TranslateZoomRotateBehavior?

转载 作者:太空宇宙 更新时间:2023-11-03 16:03:54 25 4
gpt4 key购买 nike

我需要动态创建我的 View CardSmall 的实例。所以我决定使用 ItemsControl。现在我想将 TranslateZoomRotateBehavior 附加到 ItemsControl 中的所有元素以进行触摸交互。如果我像这样在 ItemsControl 中创建一个元素,它就可以正常工作:

<ItemsControl> 
<local:CardSmall>
<i:Interaction.Behaviors>
<ei:TranslateZoomRotateBehavior/>
</i:Interaction.Behaviors>
</local:CardSmall>
</ItemsControl>

但是一旦我定义了 ItemsSource

<ItemsControl ItemsSource="{Binding CardsCollection}" >
...

拖动与触摸的交互变得非常不稳定。不像它不流畅,但更像是没有提供。同时,与鼠标的拖动交互就像一个魅力。使用 MouseDragElementBehavior 具有类似的效果。但是,当定义了 ItemsSource 时,无论是触摸还是鼠标,它都不会通过触摸进行不稳定的控制。

有没有其他人遇到过这个并且有解决方案或替代方案?哦,顺便说一下,ScatterView 目前不是一个选择。

最佳答案

我发现了相同的行为,当触摸移动时摇晃得很厉害,但用鼠标移动时却很流畅。

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
x:Class="DragTest.MainWindow"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<DataTemplate x:Key="DataTemplate1">
<Grid Background="#FFE01E1E" Width="100" Height="100">
<i:Interaction.Behaviors>
<ei:TranslateZoomRotateBehavior RotationalFriction="1"
TranslateFriction="1"/>
</i:Interaction.Behaviors>
</Grid>
</DataTemplate>
<ItemsPanelTemplate x:Key="ItemsPanelTemplate1">
<Canvas Height="250" Width="250"/>
</ItemsPanelTemplate>
</Window.Resources>
<Grid DataContext="{Binding Source={StaticResource SampleDataSource}}">
<ItemsControl HorizontalAlignment="Left" Height="100" VerticalAlignment="Top"
Width="100" ItemTemplate="{DynamicResource DataTemplate1}"
ItemsSource="{Binding Collection}"
ItemsPanel="{DynamicResource ItemsPanelTemplate1}"/>
</Grid>
</Window>

关于c# - ItemsControl 中元素的 TranslateZoomRotateBehavior?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20237704/

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