我在wpf方面很在行,但我要编写一个应用程序,当鼠标离开父容器时,它会隐藏控件的某些边界/部分。
我已经设法为文本框和按钮做了这件事,只是简单地使用不透明的故事板动画&或者borderbrush颜色,但combobox看起来是另一回事,我想这并不容易!
为了重新模式化,我需要隐藏控件的所有部分,使其看起来像一个组合框,即边框和下拉箭头按钮,使所选文本可见。最好使用动画,当鼠标离开其父容器时。此xaml显示TextBox:的触发器
<Grid.Triggers>
<EventTrigger RoutedEvent="Grid.MouseEnter">
<EventTrigger.Actions>
<BeginStoryboard Storyboard="{StaticResource showTextbox}"/>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="Grid.MouseLeave">
<EventTrigger.Actions>
<BeginStoryboard Storyboard="{StaticResource hideTextbox}"/>
</EventTrigger.Actions>
</EventTrigger>
</Grid.Triggers>
这个xaml就是动画的故事板。
<Storyboard x:Key="showTextbox" >
<ColorAnimation Storyboard.TargetName="textBox1" Storyboard.TargetProperty="(TextBox.BorderBrush).Color" From="White" To="Black" Duration="0:0:0.25" AutoReverse="False" />
</Storyboard>
<Storyboard x:Key="hideTextbox" >
<ColorAnimation Storyboard.TargetName="textBox1" Storyboard.TargetProperty="(TextBox.BorderBrush).Color" From="Black" To="White" Duration="0:0:0.25" AutoReverse="False" />
</Storyboard>
谢谢你在这方面的任何帮助或建议!
组合框的问题在于它实际上由不同的部分组成,包括切换按钮和弹出窗口。所以要改变它的样式,你需要改变它各部分的样式。
更改组合框样式的示例:http://blog.xamltemplates.net/?p=12
如果您使用该示例中的代码,那么要执行您想要的操作,请更改"ComboBoxReadonlyToggleButton"样式:
-
要删除箭头,请删除路径。
-
要添加动画,请在"ControlTemplate.triggers"部分中添加触发器
-
要删除边框,请将"边框厚度"更改为0