首页 > 解决方案 > 如何在 WPF 中设置不可点击的元素

问题描述

我正在尝试为 WPF 中的 TextBox 制作水印。为此,我在 TextBox 上有一个样式标签。

<Grid>

    <TextBox   Height="15" BorderThickness="0" HorizontalAlignment="Stretch"
          DataContext="{Binding FilterDetailsViewModel, Source={StaticResource Locator}}" 
          Text="{Binding Name, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay }"    
          TextChanged="SearchPatientByName"
          Padding="0 0 0 3"
          />
    <Label Margin="0,0,0,0" x:Name="WaterMarkLabel" Content="Search" VerticalAlignment="Center"
          Visibility="Visible" Foreground="Gray" FontFamily="Arial">
    </Label>  
                              
</Grid>

当 TextBox 的文本为空时,Label 可见,否则不可见。

问题是当标签获得焦点时,我无法更改 TextBox 中的文本。

我需要找到一种方法让这个标签不可点击。

标签: c#wpftextbox

解决方案


       <Grid Height="20">
        <TextBox Background="{x:Null}" Panel.ZIndex="1" BorderBrush="{x:Null}" 
        TextChanged="TextBox_TextChanged" >
        </TextBox>
        <StackPanel  Background="#FFF3F3F3">
            <Label x:Name="watermarklabel" Content="search" />
        </StackPanel>

        </Grid>

对于文本框 textchanged(标签名称为 watermarklabel):

 TextBox ME = sender as TextBox;
        if (ME.Text.Length > 0)
        {
            watermarklabel.Visibility = Visibility.Hidden;
        }
        else
        {
            watermarklabel.Visibility = Visibility.Visible;
        }
            

推荐阅读