gpt4 book ai didi

silverlight - VisualStateManager 不执行任何操作 (silverlight)

转载 作者:行者123 更新时间:2023-12-04 03:30:24 26 4
gpt4 key购买 nike

我正在使用 studio 2010 和 silverlight 4 构建自定义控件。我正在尝试使用视觉状态管理器。

使用以下 xml:

<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:SilverView">
<Style TargetType="controls:ScaleImage">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="controls:ScaleImage">
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualStateGroup.Transitions>
<VisualTransition To="MouseOver"
GeneratedDuration="0:0:.5"/>
<VisualTransition To="Normal"
GeneratedDuration="0:0:.5"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="Normal">
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="img"
Storyboard.TargetProperty="Width"
From="50" To="100"/>
</Storyboard>
</VisualState>
<VisualState x:Name="MouseOver">
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="img"
Storyboard.TargetProperty="Width"
From="50" To="100"/>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Image Name="img" Width="50">
<Image.RenderTransform>
<ScaleTransform x:Name="scale"/>
</Image.RenderTransform>
</Image>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

当我将鼠标悬停在图像上时,没有任何反应。当鼠标悬停在图像上时如何放大图像?

谢谢

最佳答案

VisualStateManager.VisualStateGroups 附加属性定义视觉状态集,但是组的名称和状态的名称只是名称,它们实际上并不启用它们自动描述的功能。

由控件中的代码决定何时处于特定状态,然后将该选择通知 VisualStateManager。您可以使用如下代码来做到这一点:-

VisualStateManager.GotoState(this, "MouseOver", true);

通常,您会通过各种控件事件收集诸如鼠标是否位于控件上方之类的信息,并使用一个中央 UpdateVisualState 函数来设置所有适当的状态。

关于silverlight - VisualStateManager 不执行任何操作 (silverlight),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3940257/

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