我不知道用以下代码解决问题:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Window.Resources>
<XmlDataProvider x:Key="InternalData" XPath="/Workspace">
<x:XData>
<Workspace Name="Workspace" xmlns="">
<Project Name="Project 1"/>
<Project Name="Project 2"/>
<Project Name="Project 3"/>
</Workspace>
</x:XData>
</XmlDataProvider>
</Window.Resources>
<StackPanel DataContext="{StaticResource InternalData}">
<ListBox ItemsSource="{Binding XPath=//Workspace/Project}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding XPath=@Name}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<TextBox Text="{Binding XPath=//Workspace/Project[1]/@Name, Mode=TwoWay}"/>
</StackPanel>
</Window>
如您所见,我可以使用TextBox更改工作区中第一个项目的名称。 通过更改数据,我想开始动画淡出旧值,更改值并启动动画以淡入新值(例如,“项目1”的不透明度从1到0,更改数据和不透明度“ “从0到1) 如果可能,我想只在XAML中实现解决方案。但不知道。也许是DataTrigger和EnterAction以及ExitAction之类的东西呢?
亲切的问候 Shounborugh
答案 0 :(得分:0)
您可能想尝试查看WPF故事板。如果您只想使用XAML启动动画,这是一种常见做法。这是在WPF中开始讲故事板的最佳场所 http://msdn.microsoft.com/en-us/library/ms742868.aspx
这是在更改文本框中的文本后启动故事板的方法
<TextBox Height="23" HorizontalAlignment="Left" Margin="90,44,0,0" Name="textBox1" VerticalAlignment="Top" Width="120">
<TextBox.Triggers>
<EventTrigger RoutedEvent="TextBox.TextChanged">
<BeginStoryboard>
<Storyboard>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</TextBox.Triggers>
</TextBox>