3

我有ImageTextRadioButton一个类似按钮的 RadioButton 的以下模板,其中包含文本和图像:

<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 中的 Content 只是一个包含图像文件的路径+文件名的字符串)。

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

4

1 回答 1

3

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

于 2012-04-20T15:23:04.300 回答