【问题标题】:While adding an effect to viewbox the object is grayed out在向视图框添加效果时,对象变灰
【发布时间】:2013-12-26 13:05:33
【问题描述】:

我在 Viewbox 中添加了如下效果:

<Viewbox Height="40" Width="40" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,12.5,65,0" >
    <Viewbox.Effect>
        <effects:RippleEffect Magnitude="0" Frequency="0" />
    </Viewbox.Effect>
    <Grid>
        <Rectangle x:Name="MinimizeRect" RadiusX="7" RadiusY="7" StrokeThickness="2" Stroke="White" Fill="Transparent"/>
        <Image Source="Images/Minimize.png" Margin="5"/>
    </Grid>
    <Viewbox.Triggers>
        <EventTrigger RoutedEvent="Mouse.MouseEnter" >
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation Storyboard.TargetProperty="(Effect).Magnitude" To="0.1" Duration="0:0:0.3" AutoReverse="True" RepeatBehavior="Forever" />
                    <DoubleAnimation Storyboard.TargetProperty="(Effect).Frequency" To="40" Duration="0:0:0.3" AutoReverse="True" RepeatBehavior="Forever"/>
                    <ColorAnimation Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)" To="DodgerBlue" Duration="0:0:0.3" Storyboard.TargetName="MinimizeRect"/>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
        <EventTrigger RoutedEvent="Mouse.MouseLeave" >
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation Storyboard.TargetProperty="(Effect).Magnitude" To="0" Duration="0:0:0.3" />
                    <DoubleAnimation Storyboard.TargetProperty="(Effect).Frequency" To="0" Duration="0:0:0.3" />
                    <ColorAnimation Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)" To="Transparent" Duration="0:0:0.3" Storyboard.TargetName="MinimizeRect"/>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Viewbox.Triggers>
</Viewbox>

但我的图像和矩形描边不会保持白色。它们是灰色的。这里可能有什么问题?

这是图片。

在上图中,“最小化”按钮添加了波纹效果。关闭按钮不会添加任何效果。

【问题讨论】:

  • 这些总是很难通过简单的事件触发器来管理。例如,如果您 1) 将鼠标悬停在按钮上 2) 等待动画完成 3) 将鼠标从按钮上移出,它可能会完美运行。对于这样的事情,我绝对推荐你使用visual states,它可以一直工作而不会大惊小怪。
  • 只是一点猜测。您使用 ViewBox 来缩放内容。这行得通,但您应该或多或少地知道 ViewBox 会拍摄“屏幕截图”并对其进行缩放。缩小图像可能会导致奇怪的结果。尤其是从白色变为灰色的模糊边框。
  • 效果是否必须应用到 ViewBox 上?从图形来看,将它们转换为几何路径数据可能更有意义,因此它们实际上是矢量 xaml 图像,并且不会关心它们是如何被操纵的,而是保持相同的分辨率而不是使用光栅图像。

标签: wpf xaml


【解决方案1】:

尝试将 RenderOptions.BitmapScalingMode 设置为 HighQuality,如下所示:

<Image Source="Images/Minimize.png" Margin="5"
       RenderOptions.BitmapScalingMode="HighQuality" />

【讨论】:

    猜你喜欢
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多