当鼠标离开时,隐藏组合框边框和下拉只留下文本

时间:2012-03-14 11:56:27

标签: wpf templates styles

我非常喜欢wpf,但我有一个应用程序要写,当鼠标离开父容器时,会隐藏某些边框/部分控件。

我设法用文本框和按钮只是简单地使用不透明度和边框颜色的故事板动画,但组合框是一个不同的鱼水壶,所以看起来,我猜这不是一件容易的事!

为了重新输入,我需要隐藏控件的所有部分,使其看起来像一个组合框,即边框和下拉箭头按钮 - 使所选文本可见。最好用动画,当鼠标离开它的父容器时。 此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>

感谢您提供任何帮助或指示!

1 个答案:

答案 0 :(得分:0)

组合框的问题在于它实际上由不同的部分组成,包括togglebutton和popup。因此,要改变其风格,您需要更改其部件的样式。

更改组合框样式的示例: http://blog.xamltemplates.net/?p=12

如果您使用该示例中的代码,然后执行您想要的操作,请更改'ComboBoxReadonlyToggleButton'样式:

  • 删除箭头,删除路径。

  • 添加动画,在“ControlTemplate.Triggers”部分添加触发器

  • 删除边框,将BorderThickness更改为0