我试图执行一个元素的动画时,点击某个按钮,它存在于窗口的其他地方。如何设置我的触发器,以便在其他控件上发生事件时触发它?
这是我曾尝试:
<Border Grid.Column="0" BorderThickness="1" BorderBrush="Blue"
CornerRadius="30" Margin="4">
<Border.Triggers>
<EventTrigger **SourceName="btnSearch" RoutedEvent="UIElement.MouseUp"**>
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard TargetProperty="Opacity">
<DoubleAnimation From="0" To="1" Duration="0:0:2"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Border.Triggers>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<ItemsControl x:Name="itmsSearch" ItemsSource="{Binding}" Padding="4"
ItemTemplate="{StaticResource SearchResultItemDT}">
</ItemsControl>
</ScrollViewer>
</Border>
我EventTrigger的性质似乎有错误的值,这导致一个异常被抛出,说明与名称的元素btnSearch可以找到。
上述按钮,在我的窗口别处居住:
<StackPanel
Height="30"
Orientation="Horizontal"
Margin="5">
<TextBox
x:Name="txtSearch"
Width="650"
FontFamily="Comic Sans MS"
Foreground="Chocolate" />
<Button
x:Name="btnSearch"
Width="100"
Content="Go!"
Click="BtnSearch_Click" />
</StackPanel>
我只是认为SOURCENAME设置到所需按钮的名称会做的伎俩。但它不工作:(
我试过设置TargetName =“btnSearch”,但那没有做任何事......没有回应。即便如此,我觉得这听起来有点倒退了。我的触发器在问题中显示的Border元素中,所以我不应该设置TargetName ... Border本身就是目标。我希望在按钮的Click事件被触发时边框中指定的动画发生。 – ForeverLearnNeverMaster 2011-03-16 12:32:47
此外,我试图将触发器移动到我的Button元素中(所以现在它是,然后我尝试将TargetName设置为我的Border元素的名称...并且我仍然获得了“ name not found“例外 –
ForeverLearnNeverMaster
2011-03-16 12:34:08
WOOPS!好吧,你是对的,我在之前的评论中发布的内容有效,只不过是我将整个内容部分指定为一个资源,当我将它移动到我的实际元素内容时,谢谢! – ForeverLearnNeverMaster 2011-03-16 13:24:14