【问题标题】:WPF Bitmap effect error on image source图像源上的WPF位图效果错误
【发布时间】:2014-01-21 08:24:03
【问题描述】:

我想要做的是使用 Imagebox 作为我的位图效果的来源,我不知道该怎么做。我的 imagebox 被称为 image1

<Button Content="Blur" Height="23" HorizontalAlignment="Left" Margin="148,12,0,0"    Name="button3" VerticalAlignment="Top" Width="42" Click="button3_Click" >
        <Image Source ="image1">
        <Image.BitmapEffect>
        <BlurBitmapEffect Radius="5" />
        </Image.BitmapEffect>
        </Image>
    </Button>

【问题讨论】:

    标签: c# wpf bitmap effect


    【解决方案1】:

    你在使用MVVM吗?如果不是,我强烈建议使用这种模式,因为 WPF 是为使用它而构建的,如果你不这样做,你将一直与之抗争。

    创建一个 ViewModel 类。在此 ViewModel 类中创建 Image 类型的公共属性。

    创建 ViewModel 的实例并将其放入 Window 的数据上下文中。然后给这个属性添加一个绑定。

    或者快速修复(请注意,这会导致黑暗,你会后悔开始这样编程):

    <Image Source="{Binding Source, ElementName=image1}"> 
    

    编辑:

    您的编辑是一个完全不同的故事:您已经设置了 Content 属性两次:一次是直接设置它,一次是有一个子对象。您的按钮同时具有文本 图像作为内容。但是一个按钮(和大多数其他控件)只能有 一个 内容。如果你想要两者,你的内容需要是一个容器控件,比如StackPanel,它可以有多个内容,你需要把你的ImageTextBlock都放在那里。

    示例(您需要根据需要添加 Orientation 和 Alignment):

    <Button Height="23" HorizontalAlignment="Left" Margin="148,12,0,0" Name="button3" VerticalAlignment="Top" Width="42" Click="button3_Click"> 
      <StackPanel>
        <TextBlock Text="Test"/>
        <Image Source="{Binding Source, ElementName=image1}">
          <Image.BitmapEffect>
            <BlurBitmapEffect Radius="5" />
          </Image.BitmapEffect>
        </Image>
    </Button>
    

    【讨论】:

    • 我确实像你说的那样,只替换了图像源,并在 处出现错误,即该属性只能设置一次,而图像源则该属性设置多次
    • @RedDevil 请使用确切的新来源和确切的新错误消息更新您的问题,或者向这两个提出新问题。
    • @RedDevil 我也是 :)
    • 所以我注意到其他效果是一样的,但是在我点击效果后,我注意到按钮文本下方的按钮内有一条小线,就像文本是 SADASDADADSA 并且在它下面是一个小模糊行。但是无论我是否按下按钮,我都看不到效果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多