Как я могу постоянно отображать всплывающую подсказку, когда элемент управления сфокусирован? - PullRequest
7 голосов
/ 07 января 2011

Как я могу постоянно отображать всплывающую подсказку, когда элемент управления сфокусирован?Я пробовал так много вещей, и ничего не работает.Прямо сейчас у меня есть что-то вроде следующего:

    <TextBox x:Name="textBox" Width="200">
        <TextBox.ToolTip>
            <ToolTip StaysOpen="{Binding IsKeyboardFocused, ElementName=textBox}" IsOpen="{Binding IsKeyboardFocused, ElementName=textBox}">
                Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
            </ToolTip>
        </TextBox.ToolTip>
    </TextBox>

Кажется, это должно работать очень просто, но это не так.Почему бы и нет?Я связываю свойство IsOpen всплывающей подсказки со свойством IsKeyboardFocused текстового поля.Следовательно, он должен отображаться, пока подсказка находится в фокусе.Почему нет?

1 Ответ

12 голосов
/ 07 января 2011

Вы можете использовать Popup вместо ToolTip, например:

<Grid>
    <StackPanel>
        <TextBox x:Name="textBox1" Width="200" Height="20"/>
        <TextBox x:Name="textBox2" Width="200" Height="20"/>
    </StackPanel>
    <Popup PlacementTarget="{Binding ElementName=textBox1}" IsOpen="{Binding IsKeyboardFocused, ElementName=textBox1, Mode=OneWay}">
        <TextBlock Background="White">
            <TextBlock.Text>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</TextBlock.Text>
        </TextBlock>
    </Popup>
</Grid>

и затем стилизуйте его так, чтобы он выглядел как подсказка.

...