我需要WPF混合向导的一些帮助。这更多是出于知识的缘故,因为我已经可以通过显式更改xaml来实现样式中的数据触发器,但我想知道是否有办法通过Blend执行此操作。
让我们从一些代码开始!
<Image x:Name="image" HorizontalAlignment="Center" Height="299" Margin="24,27,24,0" VerticalAlignment="Top" Width="832" RenderTransformOrigin="0.5,0.5" Source="img/SpiderLogo.png" d:IsHidden="True" Grid.RowSpan="2">
<Image.Style>
<Style>
<Style.Resources>
<Storyboard x:Key="LoadTitleScreen">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)">
<EasingDoubleKeyFrame KeyTime="0" Value="1"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.6" Value="0"/>
</DoubleAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)">
<DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}"/>
<DiscreteObjectKeyFrame KeyTime="0:0:0.6" Value="{x:Static Visibility.Collapsed}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</Style.Resources>
<Style.Triggers>
<DataTrigger Binding="{Binding IsLoginValid, Source={StaticResource viewModel}}" Value="true">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource LoadTitleScreen}"/>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
一切顺利,在这里工作!现在,在构建另一个图像并通过以下方式编辑其样式资源之后:
1)右键单击&#34;对象和时间线&#34;
中的图像2)编辑风格
3)创建样式资源
我可以创建故事板和整个九个但不能通过Blend的界面添加数据触发器。我转到资产菜单将ChangePropertyAction拖到样式上,但整个资产菜单显示为灰色/不起作用。
<Image x:Name="titleBackgroundImage" HorizontalAlignment="Center" Height="610" VerticalAlignment="Center" Width="899" Source="img/RPVBackground.jpg" Stretch="Fill" Margin="-9,-10,-10,-50" Grid.RowSpan="2" Visibility="Collapsed" Style="{DynamicResource TitleScreenBackgroundImage}">
<Image.Resources>
<Style x:Key="TitleScreenBackgroundImage" TargetType="{x:Type Image}">
<Style.Resources>
<Storyboard x:Key="LoadTitleScreenBackground">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="{x:Null}">
<EasingDoubleKeyFrame KeyTime="0:0:0.6" Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:1.1" Value="1"/>
</DoubleAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="{x:Null}">
<DiscreteObjectKeyFrame KeyTime="0:0:0.6" Value="{x:Static Visibility.Visible}"/>
<DiscreteObjectKeyFrame KeyTime="0:0:1.1" Value="{x:Static Visibility.Collapsed}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</Style.Resources>
</Style>
</Image.Resources>
</Image>
这就是我所坚持的,一个在样式资源中创建的好故事板,但是无法添加触发器来调用它=(
如果你知道如何,请帮忙!非常感谢!
答案 0 :(得分:0)
如果它只是你想要的触发器,并且该窗口默认情况下不会立即打开,你可以点击;
Ctrl + ALT + R
...或从顶部菜单View -> Triggers Window
中选择并管理您的触发器。
至于为什么您的资产标签显示为灰色,这可能是几个不同的原因。需要知道更多来诊断那一个。首先猜测你是不是只缺少SDK或其他东西?希望这会有所帮助。