当我处理按钮模板时,我刚刚遇到了绑定 StringFormat 问题。这里是。
-- 我设置了一个带有给定工具提示的按钮作为字符串。我喜欢用它来指定绑定中的图像名称。然后我将它应用到一个名为 ImageButton 的按钮样式。
<Button ToolTip="Minimize" Height="34" Style="{StaticResource ImageButton}" Margin="220,36,125,371" />;
-- 这是风格的代码。我喜欢使用绑定中的图像名称并提供完整的图像路径。它应该像这样工作,<Image x:Name="ButtonImage" Source="Images/Minimize-Normal.png" />
. 是的,我确实有这样的图像,如果我只是放置没有绑定的 xml 代码,它会很好用。
<Image x:Name="ButtonImage" Source="{Binding ToolTip, RelativeSource={RelativeSource TemplatedParent}, StringFormat={}Images/{0}-Normal.png}" />
但是绑定没有像我预期的那样工作。图像无法正确显示。如果我将图像全名放在 ToolTip 中,那么它就可以正常工作。看起来 StringFormat 已被忽略。
任何帮助将不胜感激。提前致谢。
感谢 dbaseman 的回复。我知道我可以通过使用 Converter 来实现它。但是因为我认为 StringFormat 更容易应用,所以我尝试了这个。
我还在这里找到了一个回复,它说 - 绑定到字符串属性时使用 StringFormat,而控件中的 Text 属性是对象类型,因此忽略 StringFormat。
它应该是设计使然。下面的代码有效。因为 Text 属性是字符串类型。
<TextBlock Text="{Binding ToolTip, RelativeSource={RelativeSource Self}, StringFormat={}Images/{0}-Normal.png}" ToolTip="Minimize" />