XAML: получить родительский фон - PullRequest
9 голосов
/ 23 декабря 2009

Мне нужно установить фон элемента управления на цвет фона родителя в XAML. Почему бы просто не сделать фон прозрачным? Это кнопка с тенью, поэтому мне нужно установить фон; в противном случае, тень отбрасывается.

Итак, из разметки моего элемента управления, как мне установить свойство Background равным тому, какой родительский (хост) Background является? Спасибо за вашу помощь.

Ответы [ 2 ]

14 голосов
/ 24 декабря 2009

Я собираюсь оставить ответ Рида как принятый, так как он отвечает на мой первоначальный вопрос. Но я обнаружил, что мне нужно привязать окно, в котором находится кнопка. Вот разметка, чтобы сделать это:

<Button Background="{Binding Path=Background, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}">My Button</Button>
14 голосов
/ 23 декабря 2009

Вы можете установить привязку, используя:

<Button Background="{Binding Path=Background, RelativeSource={RelativeSource Mode="FindAncestor" AncestorType="{x:Type Control}" AncestorLevel="1"}}" />

Поскольку фон задан для любого «элемента управления», он должен захватить одного предка элемента управления вверх по дереву и использовать его фон.


Другим вариантом, который следует рассмотреть, было бы просто создать стиль кнопки, который бы отображал фон как прозрачный, но на самом деле рисовал тень или границу. Это позволило бы ему работать на любом элементе UIE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...