如何在模板中显示图像,其中源是设计视图WPF中的TemplateBinding?

时间:2012-04-09 17:32:00

标签: wpf expression-blend

对于类似按钮的RadioButton,我有以下模板ImageTextRadioButton,其中包含文字和图片:

<ControlTemplate TargetType="RadioButton" x:Key="ImageTextRadioButton">
  <Border  Background="{TemplateBinding Background}" BorderBrush="Black" CornerRadius="8" BorderThickness="2">
    <Grid>
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width=".5*" />
        <ColumnDefinition Width="1*" />
      </Grid.ColumnDefinitions>
        <Image x:Name="ButtonImage" Grid.Column="0" Source="{TemplateBinding Content}" Stretch="None" />
        <TextBlock Grid.Column="1" VerticalAlignment="Center" Text="{TemplateBinding Content}" />
    </Grid>
  </Border>
</ControlTemplate>

(请注意,TemplateBindings中的内容只是一个包含图像文件的路径+文件名的字符串。)

这在运行模式下按预期工作,但在设计模式下,它不显示图像。文本块显示正确的文本,如果我用硬编码值替换Image.Source,图像也会正确显示。但是在TemplateBinding源的设计模式下,图像无法正确显示。

1 个答案:

答案 0 :(得分:3)

Argh,我将.png文件作为嵌入资源,因此转换器需要将文件名报告为"/MyProject;component/images/" + value + ".png"而不是"../images/" + value + ".png"一旦我对转换器进行了更改,一切正常。