xaml中的文本框部分:
<TextBox x:Name="searchBox" HorizontalAlignment="Center" VerticalAlignment="Top" Width="1100" Height="30" Margin="10,70,0,0" FontSize="16" TextChanged="searchBox_TextChanged">
<TextBox.Style>
<Style TargetType="TextBox">
<Setter Property="Background" Value="Transparent" />
<Setter Property="MaxLength" Value="50" />
<Setter Property="Foreground" Value="DarkGray" />
<Style.Triggers>
<Trigger Property="IsFocused" Value="True">
<Setter Property="Foreground" Value="Black" />
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
<TextBox.Text>
<Binding Path="SearchText" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged"/>
</TextBox.Text>
<TextBox.Template>
<ControlTemplate TargetType="TextBox">
<Grid>
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"/>
<TextBlock Text="Hello World" Foreground="LightGray" Margin="5,0,0,0"/>
<ScrollViewer x:Name="PART_ContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Grid>
</ControlTemplate>
</TextBox.Template>
</TextBox>
运行应用程序时,结果是文本框中的水印Hello World:
但是在MainWindow.xaml.cs的构造函数中,如果我添加这行:
public MainWindow()
{
InitializeComponent();
searchBox.Text = "aaa";
}
在文本框中运行应用程序时,我没有看到屏幕。
我希望,如果我在构造函数中添加这一行,它将覆盖Hello World,因此Hello World将被删除,而Hello World将被删除。但它一点都不显示出它的颜色。
第二件事是事件searchBox_TextChanged在这里我想当我在文本框中键入的东西,你好世界将被删除,现在当我键入的东西,它的显示我键入的文本,但也保持水印你好世界。
private void searchBox_TextChanged(object sender, TextChangedEventArgs e)
{
// Filter the ListView based on the search text
string searchText = searchBox.Text.ToLower();
var filteredProcesses = processDictionary.Values.Where(p => p.Name.ToLower().Contains(searchText)).ToList();
lstvw.ItemsSource = filteredProcesses;
}
2条答案
按热度按时间jm81lzqq1#
这是工作。
添加了一个新类:
更新了xaml代码:
现在在主窗口构造函数中,我可以添加一个文本,例如:
这将删除水印文本,并添加水印。或者只是在文本框(搜索框)中键入,它将替换水印,当从文本框中删除文本时,水印将再次显示。
wi3ka0sx2#
检查下面的答案:
https://stackoverflow.com/a/6972726/22732851
否则,您也可以设置占位符