Каким образом кисть, которая используется для BackgroundProperty элемента управления WPF, может получить поле?
В WPF у меня есть TextBox
с BackgroundProperty
установить пользовательскую кисть. Я хочу дать этой кисти некоторый визуальный буфер от границы TextBox
, Кисть это GlyphRunBrush
который действует так же, как ImageBrush
, но в качестве источника кисти используется растеризованный глиф.
Как я могу это сделать?
Пример:
1 ответ
Решение
Один из способов - применить преобразование к самой кисти, например, так:
<TextBox>
<TextBox.Background>
<ImageBrush ImageSource="/MyApp;component/Search.ico"
AlignmentX="Right" Stretch="Uniform">
<ImageBrush.Transform>
<TransformGroup>
<TranslateTransform X="-5"/>
</TransformGroup>
</ImageBrush.Transform>
</ImageBrush>
</TextBox.Background>
</TextBox>
Вы также можете попробовать изменить ширину кисти Viewport
свойство, но поскольку вы выравниваете его по правой стороне, это может быть сложнее, чем нужно.