Member 12680324 Ответов: 1

Как отключить "всплывающую подсказку" в текстовом поле ?


Я хочу отключить всплывающую подсказку textbox при наведении мыши, пожалуйста, помогите
Вот мой шаблон управления текстовым полем

Что я уже пробовал:

<ControlTemplate x:Key="TextboxWithWatermark" TargetType="{x:Type TextBox}">
        <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="True" Background="{TemplateBinding Background}">
            <Grid>
                <ScrollViewer x:Name="PART_ContentHost" Focusable="False" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/>
                <TextBlock Cursor="IBeam" VerticalAlignment="Top" x:Name="HintPresenter" FontFamily="{TemplateBinding FontFamily}" FontSize="{TemplateBinding FontSize}" FontWeight="{TemplateBinding FontWeight}" Margin="5,0,5,0" HorizontalAlignment="Left" Foreground="{TemplateBinding Foreground}" FontStyle="Italic" Opacity="0" Text="{TemplateBinding ToolTip}"/>
            </Grid>
        </Border>
        <ControlTemplate.Triggers>
            <Trigger Property="IsEnabled" Value="False">
                <Setter Property="Opacity" TargetName="border" Value="0.56"/>
            </Trigger>
            <Trigger Property="Text" Value="" >
                <Setter Property="Opacity" TargetName="HintPresenter" Value="0.5"/>
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>

1 Ответов

Рейтинг:
0

Graeme_Grant

В общем коде нет набора подсказок. Если вы видите один, то он установлен где - то в другом месте-код, который не разделяется в вопросе. Сверьтесь с фактическим кодом на странице, в представлении или в коде позади.

Обновление
Почему бы просто не поработать с ToolTipService и IsEnabled собственность. Пример:

<TextBox Text="Is Enable Test" Width="100"
         ToolTipService.IsEnabled ="{Binding ElementName=EnabledState, Path=IsChecked}"
         ToolTipService.ToolTip="This is a tooltip for the textbox"/>
<CheckBox x:Name="EnabledState" Content="Show Tooltip" IsChecked="True" Margin="10 0" />


Member 12680324

Я хочу скрыть всплывающие подсказки, когда мышь находится над текстовым полем

<Window.Resources>
        <ControlTemplate x:Key="TextboxWithWatermark" TargetType="{x:Type TextBox}">
            <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="True" Background="{TemplateBinding Background}">
                <Grid>
                    <ScrollViewer x:Name="PART_ContentHost" Focusable="False" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/>
                    <TextBlock Cursor="IBeam" VerticalAlignment="Top" x:Name="HintPresenter" FontFamily="{TemplateBinding FontFamily}" FontSize="{TemplateBinding FontSize}" FontWeight="{TemplateBinding FontWeight}" Margin="5,0,5,0" HorizontalAlignment="Left" Foreground="{TemplateBinding Foreground}" FontStyle="Italic" Opacity="0" Text="{TemplateBinding ToolTip}"/>
                </Grid>
            </Border>
            <ControlTemplate.Triggers>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Opacity" TargetName="border" Value="0.56"/>
                </Trigger>
                <Trigger Property="Text" Value="" >
                    <Setter Property="Opacity" TargetName="HintPresenter" Value="0.5"/>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
    </Window.Resources>
    <Grid x:Name="MainGrid">
        <StackPanel Margin="10" Width="150" HorizontalAlignment="Left">
            <Label Content="Information"/>
            <TextBox Template="{DynamicResource TextboxWithWatermark}" ToolTip="First name" Margin="1"/>
            <TextBox Template="{DynamicResource TextboxWithWatermark}" ToolTip="Last name" Margin="1"/>
            <TextBox Template="{DynamicResource TextboxWithWatermark}" ToolTip="Address" Margin="1"/>
            <TextBox Template="{DynamicResource TextboxWithWatermark}" ToolTip="E-mail address" Margin="1"/>
            <TextBox Template="{DynamicResource TextboxWithWatermark}" ToolTip="Tel" Margin="1"/>
            <Button Content="Send" HorizontalAlignment="Right"/>
        </StackPanel>
    </Grid>

Graeme_Grant

Я не понимаю, почему вы это сделали-звучит очень странно.

Но если вы хотите скрыть/показать на мыши, у вас есть два варианта:
1. Стили: использовать триггеры событий для события мыши: mouseenter &амп; MouseLeave
2. ControlTemplate (как указано выше) вы используете VisualStateManager

Graeme_Grant

У меня к тебе другая мысль. Ознакомьтесь с обновленным решением.

Member 12680324

ToolTipService.IsEnabled работает, Спасибо


Теперь всплывающая подсказка становится водяным знаком текстового поля, когда текстовое поле string. empty не показывает никакой всплывающей подсказки при наведении курсора мыши


&ЛТ;триггер свойства="IsMouseOver" значение="истинный"и GT;
& lt;Setter Property= " ToolTipService.IsEnabled "Value= "False"/>


Я не уверен, что это правильно, как использовать. Но это все еще работает