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



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

相关内容

  • 没有找到相关文章