2013-02-19 6 views
0

В WPF у меня есть сетка с одной строкой и двумя столбцами.Динамическое изменение свойства управления на основе других элементов управления

<Grid> 
<Textbox Grid.Column=0> 
    <Validation.ErrorTemplate> 
    <DockPanel> 
    <Image DockPanel.Dock="Right" Margin="20,0,0,0"/> 
    </DockPanel> 
    </Validation.ErrorTemplate> 
</Textbox> 
<Button Grid.Column=1> 
</Button> 

Я хочу, чтобы изображение (значок ошибки) оставалось справа от кнопки, которая может иметь переменный размер в зависимости от его текста. Есть ли способ динамически установить границу изображения по ширине кнопки? Прямо сейчас он просто закреплен на 20 пикселей справа от текстового поля.

+0

Вы хотите, чтобы значок ошибки отображался прямо в текстовое поле, а не на кнопке !! –

+0

@Sniffer, я хочу, чтобы значок ошибки помещался относительно кнопки, а не текстовое поле. – daniely

ответ

0

Шаблон ошибки проверки показан на специальном слое adorner. Если вам нужно положение, элементы, относящиеся к украшенному элементу, просто используйте класс AdornedElementPlaceholder в вас XAML.

+0

Я могу добавить AdornedElementPlaceholder в текстовое поле, но это только определяет его положение относительно текстового поля. Но я хочу, чтобы это относилось к кнопке управления ... – daniely

+0

Тогда ou может попытаться компенсировать положение рекламодателя с полями, применяемыми к AdornedElementPlaceholder. И эти поля могут быть привязаны к фактической высоте/ширине кнопки. Но это довольно хрупкое –

0

Я не думаю, что можно выполнить то, что вы пытаетесь увидеть, поскольку вы не можете ссылаться на элемент из шаблона данных, если только указанный элемент не определен внутри этого шаблона или стиля. Вы можете сделать это по-другому, see here.

Смежные вопросы