Ben, as you wrote "to use IsKeyboardFocusWithin or something similar", I have tried to use Focus of TextBox as Binding element, but there is one problem: if we have some text in textbox and than lose focus, our icon appears at the center. That's why using focus for binding is wrong solution.
What I propose is to create new property in ViewModel. I called it CanAlingmentToLeft, that would depend not only on Focus, but also on value of textbox. Hope that you will accept this solution.