ボタン テンプレートで作業しているときに、バインディング StringFormat の問題が発生しました。ここにあります。
-- 特定の ToolTip を文字列としてボタンを設定しました。バインディング内で画像名を指定するために使用するのが好きです。次に、これを 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}" />
しかし、バインディングは期待どおりに機能しませんでした。画像が正しく表示されません。ツールチップに画像の完全な名前を入力すると、正しく機能しました。StringFormat が無視されたようです。
どんな助けでも大歓迎です。前もって感謝します。
dbaseman の応答に感謝します。私は Converter を使用してそれを達成できることを知っています。しかし、StringFormat の方が適用しやすいと思うので、これを試してみました。
また、ここで返信を見つけました-文字列プロパティにバインドするときにStringFormatが使用されますが、コントロールのTextプロパティはオブジェクト型であるため、StringFormatは無視されます。
それは設計によるものです。以下のコードは機能します。Text プロパティは文字列型であるためです。
<TextBlock Text="{Binding ToolTip, RelativeSource={RelativeSource Self}, StringFormat={}Images/{0}-Normal.png}" ToolTip="Minimize" />