【问题标题】:Hiding combobox border and drop-down just leaving text when mouse leaves鼠标离开时隐藏组合框边框和下拉菜单只留下文本
【发布时间】:2012-03-30 21:13:12
【问题描述】:

我是 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>

感谢您对此的任何帮助或指点!

【问题讨论】:

    标签: wpf templates styles


    【解决方案1】:

    组合框的问题在于它实际上由不同的部分组成,包括切换按钮和弹出窗口。所以要改变它的风格,你需要改变它的部分的风格。

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

    如果您使用该示例中的代码,然后做您想做的事,请更改“ComboBoxReadonlyToggleButton”样式:

    • 要删除箭头,请删除路径。

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

    • 要移除边框,请将 BorderThickness 更改为 0

    【讨论】:

      猜你喜欢
      • 2021-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-09
      • 1970-01-01
      • 2012-01-17
      • 1970-01-01
      相关资源
      最近更新 更多