Это очень странное требование, но оно может быть выполнено с использованием поведения.Вот примерная разметка:
<Grid>
<TextBox Text="This is some text">
<i:Interaction.Behaviors>
<local:NewWindowOnSelectBehavior/>
</i:Interaction.Behaviors>
</TextBox>
</Grid>
, и вот поведение, которое в демонстрационных целях показывает окно сообщения:
public class NewWindowOnSelectBehavior : Behavior<TextBox>
{
protected override void OnAttached()
{
AssociatedObject.SelectionChanged += (s, e) =>
{
if (!string.IsNullOrEmpty(AssociatedObject.SelectedText))
MessageBox.Show("New Window");
};
}
}
В этом примере используются поведения.Если вы не знакомы с поведением, установите Expression Blend 4 SDK и добавьте это пространство имен:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
и добавьте System.Windows.Interactivity
в свой проект.