FluidMoveBehavior设置TAG=“DataContext”后会移动两次

longcad10 2013-05-30 11:16:59
我在WPF中使用FluidMoveBehavior AppliesTo="Children" Tag="DataContext" 后,绑定到listbox后,listbox元素点击一次后直接移动,再点一次从之前的点再平滑移动一次,有大牛知道么?
前台代码:
<UserControl 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:il="clr-namespace:Microsoft.Expression.Interactivity.Layout;assembly=Microsoft.Expression.Interactions"
xmlns:ic="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
xmlns:demo="clr-namespace:UniMapGHBZWPF"
d:DesignHeight="544" d:DesignWidth="837" x:Class="UniMapGHBZWPF.UCDataSync" Loaded="UserControl_Loaded">
<UserControl.Resources>
<ControlTemplate x:Key="CheckBoxControlTemplate1" TargetType="CheckBox">
<Grid Background="#02424242"/>
</ControlTemplate>
<DataTemplate x:Key="ItemTemplate">
<Grid Width="120" Height="96">
<Grid VerticalAlignment="Center" HorizontalAlignment="Center">
<Rectangle Fill="#FFC2C2C2" Margin="-2" RadiusY="6" RadiusX="6">
<Rectangle.Effect>
<DropShadowEffect ShadowDepth="0" Color="#FF0E0E0E" Opacity="0.6" BlurRadius="6"/>
</Rectangle.Effect>
</Rectangle>
<Image Source="{Binding Photo}" Height="81" Width="108" HorizontalAlignment="Left" VerticalAlignment="Top" Clip="M0,4 C0,1.790861 1.790861,0 4,0 L104,0 C106.20914,0 108,1.790861 108,4 L108,77 C108,79.209137 106.20914,81 104,81 L4,81 C1.790861,81 0,79.209137 0,77 z"/>
<CheckBox IsChecked="{Binding IsLiked, Mode=TwoWay}" Template="{StaticResource CheckBoxControlTemplate1}" Opacity="0"/>
</Grid>
</Grid>
</DataTemplate>
<ItemsPanelTemplate x:Key="ItemsPanelTemplate1" >
<StackPanel Orientation="Horizontal">
<i:Interaction.Behaviors >
<il:FluidMoveBehavior AppliesTo="Children" Duration="0:0:0.75" Tag="DataContext" >
<il:FluidMoveBehavior.EaseY>
<BackEase EasingMode="EaseInOut"/>
</il:FluidMoveBehavior.EaseY>
<il:FluidMoveBehavior.EaseX>
<BackEase EasingMode="EaseInOut" />
</il:FluidMoveBehavior.EaseX>
</il:FluidMoveBehavior>
</i:Interaction.Behaviors>
</StackPanel>
</ItemsPanelTemplate>
<Style x:Key="ListBoxItemStyle1" TargetType="ListBoxItem">
<Setter Property="Padding" Value="3"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Top"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Grid x:Name="grid" Background="{TemplateBinding Background}">
<VisualStateManager.CustomVisualStateManager>
<ic:ExtendedVisualStateManager/>
</VisualStateManager.CustomVisualStateManager>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="LayoutStates">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="0:0:0.5">
<VisualTransition.GeneratedEasingFunction>
<CubicEase EasingMode="EaseInOut"/>
</VisualTransition.GeneratedEasingFunction>
</VisualTransition>
</VisualStateGroup.Transitions>
<VisualState x:Name="Unloaded"/>
<VisualState x:Name="BeforeLoaded"/>
<VisualState x:Name="Loaded"/>
<VisualState x:Name="AfterLoaded"/>
<VisualState x:Name="BeforeUnloaded"/>
</VisualStateGroup>
<VisualStateGroup x:Name="SelectionStates">
<VisualState x:Name="Unselected"/>
<VisualState x:Name="Selected"/>
<VisualState x:Name="SelectedUnfocused"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<ControlTemplate x:Key="ToggleImage" TargetType="ToggleButton">
<Grid>
<Image Source="{Binding Image}"/>
</Grid>
</ControlTemplate>
<DataTemplate x:Key="PhotoModelTemplate">
<StackPanel>
<ToggleButton Content="ToggleButton" Height="100" Width="100" Template="{StaticResource ToggleImage}" IsChecked="{Binding IsLiked, Mode=TwoWay}"/>
</StackPanel>
</DataTemplate>
</UserControl.Resources>
<StackPanel>
<GroupBox Header="同步数据目标/源" Name="groupBox1" >
<Grid Name="grdBase" Style="{StaticResource WindowGridStyle}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="15*"></ColumnDefinition>
<ColumnDefinition Width="15*"></ColumnDefinition>
<ColumnDefinition Width="15*"></ColumnDefinition>
<ColumnDefinition Width="15*"></ColumnDefinition>
<ColumnDefinition Width="15*"></ColumnDefinition>
<ColumnDefinition Width="15*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="50*"></RowDefinition>
<RowDefinition Height="50*"></RowDefinition>
</Grid.RowDefinitions>
<Border Style="{DynamicResource BorderStyle}" Grid.Column="0" Grid.Row="0" />
<Border Style="{DynamicResource BorderStyle}" Grid.Column="2" Grid.Row="0" />
<Border Style="{DynamicResource BorderStyle}" Grid.Column="4" Grid.Row="0" />
<Border Style="{DynamicResource BorderStyle}" Grid.Column="0" Grid.Row="1" />

</Grid>
</GroupBox>
<GroupBox Header="同步内容" Name="groupBox2" Height="356">
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.5*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid Margin="8">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.672*"/>
<ColumnDefinition Width="0.328*"/>
</Grid.ColumnDefinitions>
<DockPanel Grid.ColumnSpan="2">
<ListBox Cursor="Hand" x:Name="PhotosILikeListBox" ItemsSource="{Binding PhotosILike}" ItemTemplate="{StaticResource PhotoModelTemplate}" Foreground="#FFCACACA" Background="{x:Null}" FontSize="16" ItemsPanel="{StaticResource ItemsPanelTemplate1}" ItemContainerStyle="{StaticResource ListBoxItemStyle1}" DockPanel.Dock="Bottom"/>
</DockPanel>
</Grid>
<DockPanel Grid.RowSpan="2" Grid.Row="1">
<ListBox Cursor="Hand"x:Name="PhotosIHateListBox" ItemsSource="{Binding PhotosIHate}" ItemTemplate="{StaticResource PhotoModelTemplate}" Foreground="#FFCACACA" Background="{x:Null}" FontSize="16" ItemsPanel="{StaticResource ItemsPanelTemplate1}" ItemContainerStyle="{StaticResource ListBoxItemStyle1}"/>
</DockPanel>
</Grid>
</GroupBox>
</StackPanel>
</UserControl>

后台:
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media.Imaging;
using Ookii.Dialogs.Wpf;
using System.ComponentModel;



namespace UniMapGHBZWPF
{
/// <summary>
/// UCDataSync.xaml 的交互逻辑
/// </summary>
public partial class UCDataSync : UserControl
{
public UCDataSync()
{
InitializeComponent();

}

private void LoadForm()
{
PhotoModel photo = new PhotoModel();
photo.IsLiked = true;
photo.ModuleCode = "BaseParam";
photo.Image = new BitmapImage( new Uri( "/UniMapGHBZWPF;component/Images/SyncBaseParamChoose.png", UriKind.Relative ) );
photos.Photos.Add( photo );

}

private void UserControl_Loaded( object sender, RoutedEventArgs e )
{
LoadForm();
LayoutRoot.DataContext = photos;
}

}
}
...全文
204 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
longcad10 2013-06-09
  • 打赏
  • 举报
回复
每天一顶,防止沉
longcad10 2013-06-05
  • 打赏
  • 举报
回复
顶起来,有没有大哥知道呀
longcad10 2013-05-30
  • 打赏
  • 举报
回复
第一次发帖,解决后100%结贴,不够再加分。谢谢!或者可以加QQ 969612606
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 用户账户控制(UAC)白名单的配置 Windows7环境中 UAC(User Account Control,用户帐户控制)是由微软在Windows Vista版本中推出的一项旨在增强系统安全性的创新技术,该技术强制要求用户在执行可能干扰计算机正常运作的操作或进行更改会波及其他用户设置的变动前,必须提供相应的权限或管理员密码进行验证。通过对这些操作启动前进行授权确认,UAC能够有效阻止恶意软件及间谍软件在未获授权的状态下于计算机内进行安装或实施修改。 自从Vista版本问世以来,微软便开始推行这一全新的安全机制,可视为对系统安全防护的显著提升。尽管UAC确实能够在一定程度上对某些非法程序起到防御作用,但与此同时,这一功能也给众多用户带来了诸多不便。 因此,许多用户开始探寻是否存在类似于白名单的功能,以便将那些值得信赖的程序直接赋予运行权限。事实上,这类功能确实存在,不过微软并未将其作为标准配置提供。 网络上关于此问题的绝大多数建议都是建议禁用UAC,这种说法显然缺乏针对性,因为若用户希望禁用此功能,本就不会提出相关疑问。 通过运用微软官方发布的Microsoft Application Compatibility Toolkit 5.6版本,可以将信任的程序纳入系统白名单范畴。 获取Application Compatibility Toolkit 安装程序成功后会出现三个可执行文件 以管理员身份启动Compatibility Administrator 在Custom DataBases部分创建新的数据库,并添加一个Application Fix(在下方空白处点击右键,选择...
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 DELL服务器的操作系统部署流程包含一系列细致的环节,其适用范围涵盖多种操作系统类型,例如Windows Server与Red Hat Linux等。在启动部署之前,必须确认服务器的光驱设备为DVD驱动器,并且需准备对应的系统安装媒介。下面将详细列出完整的部署步骤: 1. **启动准备**:将随服务器提供的Systems Management Tools and Documentation version 6.0光盘置入服务器光驱,随后设定服务器以光驱作为启动设备。此环节旨在确保服务器在启动阶段能够读取安装光盘内容。 2. **语言设定**:服务器启动后,选定简体中文作为部署语言,并确认接受许可协议条款。 3. **时区选择**:在部署期间,需设定时区为北京、香港、重庆或乌鲁木齐,依据实际地理位置进行适配选择。 4. **系统类型选择**:随后,需选定计划部署的操作系统,支持的版本包括Server 2003 SP2、Server 2003 SP2 64位版本、Windows 2003 SBS SP2、Server 2008、Windows 2008 SBS/EBS x64版本等,以及多种Red Hat和SUSE Linux版本。 5. **RAID设定**:若服务器出厂时已预设RAID配置,则可选择跳过此步骤。若需重新设定RAID,操作时需格外小心,因为这一过程可能引发硬盘数据遗失。 6. **引导分区规划**:设定引导分区的大小,通常C盘建议预留至少20GB的空间,具体容量需根据系统需求进行调整。 7. **网络设定**:网络设定可在系统部署完成后执行,部署期间建议暂时拔除...

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧