none
wpf 图片变亮 RRS feed

  • 问题

  • 鼠标移入一副图片时,图片变亮,移开后又恢复原样。如果改变透明度的话,能看到后面的东西,而且人物效果不好。有没有其他的好办法?请高手指点。
    勿以恶小而为之,勿以善小而不为
    2009年9月5日 2:34

答案

  • 这个问题很简单,你将图片生成3D,然后调节灯光亮度颜色由黑变白,OK!
    2009年9月7日 5:07
  • 楼主你好,

    仁虎提供了一个可行的方法,改变图片的亮度, 你还可以利用BitmapEffect这个属性, 下面的例子利用了OuterGlowBitmapEffect这个交果,你当然可以再加一下其他的BitmapEffect到BitmapEffectGroup中,调用一下,得到你自己想到的效果.
    Code snippet:

    <StackPanel>

            <StackPanel.Resources>

                <!-- This style applies to any Image on the Window. -->

                <Style TargetType="{x:Type Image}">

                    <Style.Triggers>

                        <!-- When the Image is mouse over,apply the OuterGlowBitmapEffect to the Image. -->

                        <Trigger Property="IsMouseOver" Value="True">

                            <Setter Property = "BitmapEffect" >

                                <Setter.Value>

                                    <!-- The OuterGlow is blue, extends out 30 pixels, has the

                       maximum noise possible, and is 40% Opaque. and other bitmap effect to this group -->

                                    <BitmapEffectGroup>

                                        <OuterGlowBitmapEffect

                                               GlowColor="Blue"

                                               GlowSize="30" Noise="1"

                                               Opacity="0.4" />

                                    </BitmapEffectGroup>

                                </Setter.Value>

                            </Setter>

                        </Trigger>

                    </Style.Triggers>

                </Style>

            </StackPanel.Resources>

            <StackPanel>

                <Image Source="C:/apple.jpg"  Width="200" />

            </StackPanel>

        </StackPanel>

    如有疑问,请继续回复.
    谢谢.


    Jim Zhou -MSFT
    2009年9月7日 7:34
    版主

全部回复

  • 这个问题很简单,你将图片生成3D,然后调节灯光亮度颜色由黑变白,OK!
    2009年9月7日 5:07
  • 楼主你好,

    仁虎提供了一个可行的方法,改变图片的亮度, 你还可以利用BitmapEffect这个属性, 下面的例子利用了OuterGlowBitmapEffect这个交果,你当然可以再加一下其他的BitmapEffect到BitmapEffectGroup中,调用一下,得到你自己想到的效果.
    Code snippet:

    <StackPanel>

            <StackPanel.Resources>

                <!-- This style applies to any Image on the Window. -->

                <Style TargetType="{x:Type Image}">

                    <Style.Triggers>

                        <!-- When the Image is mouse over,apply the OuterGlowBitmapEffect to the Image. -->

                        <Trigger Property="IsMouseOver" Value="True">

                            <Setter Property = "BitmapEffect" >

                                <Setter.Value>

                                    <!-- The OuterGlow is blue, extends out 30 pixels, has the

                       maximum noise possible, and is 40% Opaque. and other bitmap effect to this group -->

                                    <BitmapEffectGroup>

                                        <OuterGlowBitmapEffect

                                               GlowColor="Blue"

                                               GlowSize="30" Noise="1"

                                               Opacity="0.4" />

                                    </BitmapEffectGroup>

                                </Setter.Value>

                            </Setter>

                        </Trigger>

                    </Style.Triggers>

                </Style>

            </StackPanel.Resources>

            <StackPanel>

                <Image Source="C:/apple.jpg"  Width="200" />

            </StackPanel>

        </StackPanel>

    如有疑问,请继续回复.
    谢谢.


    Jim Zhou -MSFT
    2009年9月7日 7:34
    版主
  • 恩。我现在用的就是这种办法。多谢啦
    勿以恶小而为之,勿以善小而不为
    2009年9月11日 3:04
  • Dut你好,

    很高兴我的解决方案对你有用,如有其他疑问,请继续发贴(重开新贴),我很乐意和你一起交流。

    谢谢。


    Jim Zhou -MSFT
    2009年9月11日 8:09
    版主