在wpf中单击textBlock时如何更改textblock背景?
How to change textblock background when click textBlock in wpf?
我正在处理 Wpf 项目。我想在单击它时更改 textBlock (textblockA) 的背景颜色。我参考了这篇 文章。但问题是我想单击另一个 textBlock (textBlockB),然后 textblockB 更改颜色,textBlockA returns 更改为相同的颜色。 (我的英语有点不好)这是我的 Xaml 代码。
<UserControl x:Class="StandApp.Views.SettingView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:StandApp.Views"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl.Resources>
<Style TargetType="TextBlock">
<Style.Triggers>
<EventTrigger RoutedEvent="MouseDown">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="Background.Color" From="White" To="Yellow" Duration="0:0:0.1"></ColorAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="125*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="60*"/>
</Grid.RowDefinitions>
<TextBlock Text="textBlockA" Background="White"></TextBlock>
<TextBlock Text="textBlockB" Background="White"></TextBlock>
</Grid>
</UserControl>
本人是Wpf初学者,希望大家多多帮助。谢谢!
据我了解,当您单击时,意味着当聚焦在文本框上时,背景应该是红色的
<Style x:Key="RedTextBoxStyle" TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="IsFocused" Value="true">
<Setter Property="Background" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
<TextBox Style="{StaticResource RedTextBoxStyle}" />
当您单击文本框时,当 IsFocused 为 true 时,它将聚焦,将背景更改为红色
注意:TargetType="TextBlock" 如果您这样使用。该样式将应用于范围的所有 TextBlock,因此给它一个键并在该样式所需的 TextBox 上使用
我正在处理 Wpf 项目。我想在单击它时更改 textBlock (textblockA) 的背景颜色。我参考了这篇
<UserControl x:Class="StandApp.Views.SettingView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:StandApp.Views"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl.Resources>
<Style TargetType="TextBlock">
<Style.Triggers>
<EventTrigger RoutedEvent="MouseDown">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="Background.Color" From="White" To="Yellow" Duration="0:0:0.1"></ColorAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="125*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="60*"/>
</Grid.RowDefinitions>
<TextBlock Text="textBlockA" Background="White"></TextBlock>
<TextBlock Text="textBlockB" Background="White"></TextBlock>
</Grid>
</UserControl>
本人是Wpf初学者,希望大家多多帮助。谢谢!
据我了解,当您单击时,意味着当聚焦在文本框上时,背景应该是红色的
<Style x:Key="RedTextBoxStyle" TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="IsFocused" Value="true">
<Setter Property="Background" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
<TextBox Style="{StaticResource RedTextBoxStyle}" />
当您单击文本框时,当 IsFocused 为 true 时,它将聚焦,将背景更改为红色
注意:TargetType="TextBlock" 如果您这样使用。该样式将应用于范围的所有 TextBlock,因此给它一个键并在该样式所需的 TextBox 上使用