Why does my adorner not re-render when the element it's applied to changes?
Posted
by Robert Rossney
on Stack Overflow
See other posts from Stack Overflow
or by Robert Rossney
Published on 2010-03-15T21:28:55Z
Indexed on
2010/03/15
21:29 UTC
Read the original article
Hit count: 382
In a UI I'm building, I want to adorn a panel whenever one of the controls in the panel has the focus. So I handle the IsKeyboardFocusWithinChanged
event, and add an adorner to the element when it gains the focus and remove the adorner when it loses focus. This seems to work OK.
The problem I'm having is that the adorner isn't getting re-rendered if the bounds of the adorned element changes. For instance, in this simple case:
<WrapPanel Orientation="Horizontal"
IsKeyboardFocusChanged="Panel_IsKeyboardFocusChanged">
<Label>Caption</Label>
<TextBox>Data</TextBox>
</WrapPanel>
the adorner correctly decorates the bounds of the WrapPanel
when the TextBox
receives the focus, but as I type in text, the TextBox
expands underneath the edge of the adorner. Of course as soon as I do anything that forces the adorner to render, like ALT-TAB out of the application or give another panel the focus, it corrects itself. But how can I get it to re-render when the bounds of the adorned element change?
© Stack Overflow or respective owner