带图像的按钮不覆盖另一个图像

时间:2014-02-13 18:32:50

标签: c# wpf image button visibility

我的图像被拉伸为窗口的大小(宽度和高度)。

我有一个位于顶部的按钮,其中包含以下XAML:

<Image Source="sample.png"></Image>
<Button Height="50" Width="100" Content="OverLay Image" Foreground="AliceBlue" 
        Background="Transparent" HorizontalAlignment="Left"
        VerticalAlignment="Top"/>

这会在我运行时显示按钮正常,但是,我希望按钮使用此模板来显示图像而不是文本:

      <Button Height="50" Width="100" Content="OverLay Image"
              Foreground="AliceBlue" Background="Transparent"
              HorizontalAlignment="Left" VerticalAlignment="Top">
            <Button.Template>
                <ControlTemplate>
                    <Border>
                        <Image Source="img/sample.png" 
                               Width="32" 
                               Height="32"/>
                    </Border>
                </ControlTemplate>
            </Button.Template>
        </Button>

当我添加模板部分时:

          <Button.Template>
                <ControlTemplate>
                    <Border>
                        <Image Source="img/sample.png" 
                               Width="32" 
                               Height="32"/>
                    </Border>
                </ControlTemplate>
            </Button.Template>

按钮消失。有没有人见过这个或知道如何强制按钮显示?

提前致谢!

2 个答案:

答案 0 :(得分:0)

由于您更改了ControlTemplate,因此只显示您的图片。一切都很好,你确定图像路径是正确的吗?尝试设置边框的背景以确保模板没有任何问题。使用Snoop查看VisualTree并查看图像源。

答案 1 :(得分:0)

它可能一无所获,但我注意到在Image的第一个(工作)示例中,您使用此路径来显示图像:

<Image Source="sample.png"></Image>

但是你说的那个不起作用的是使用这个路径:

<Image Source="img/sample.png"/>

也许这只是您在此处复制时出现的错误,但除此之外,请在ControlTemplate中尝试此操作:

<Image Source="sample.png"/>