WPF位图效果图像源上的错误

时间:2014-01-03 15:49:37

标签: c# wpf bitmap effect

我想要做的是使用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>

1 个答案:

答案 0 :(得分:1)

您使用的是MVVM吗?如果没有,我强烈建议使用这种模式,因为WPF是为了使用它而构建的,如果你不这样做,你将一直对抗它。

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

创建ViewModel的实例并将其放入Window的datacontext中。然后为此属性添加绑定。

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

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

编辑:

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

示例(您需要根据需要放入方向和对齐方式):

<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>