【问题标题】:TextBlock Visibility change WPF via Button hoverTextBlock Visibility 通过按钮悬停更改 WPF
【发布时间】:2015-01-31 17:48:31
【问题描述】:

我目前正在编写一个小应用程序,但我陷入了以下几点:

我的按钮在代码中有几个参数,我想在单独的文本块中显示这些值。

当我将鼠标悬停在按钮上时是否有可能更改文本块的可见性,以便参数仅在悬停在按钮上时可见?

【问题讨论】:

    标签: c# wpf hover visibility


    【解决方案1】:

    XAML 解决方案:

    <Grid>
        <Grid.Resources>
            <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
        </Grid.Resources>
    
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition />
        </Grid.RowDefinitions>
    
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
    
        <TextBlock Text="Foo" Visibility="{Binding IsMouseOver, ElementName=Foo, Converter={StaticResource BooleanToVisibilityConverter}}"/>
        <TextBlock Grid.Row="1" Text="Bar" Visibility="{Binding IsMouseOver, ElementName=Bar, Converter={StaticResource BooleanToVisibilityConverter}}"/>
    
        <Button x:Name="Foo" Grid.Column="1" Content="Foo"/>
        <Button x:Name="Bar" Grid.Row="1" Grid.Column="1" Content="Bar"/>
    </Grid>
    

    converters 命名空间声明为:

    xmlns:converters="clr-namespace:System.Windows.Controls;assembly=PresentationFramework" 
    

    【讨论】:

      【解决方案2】:

      当然有,使用按钮MouseEnter 事件。像下面这样的东西可以正常工作:

      button1_MouseEnter(object sender, EventArgs e)
      {
          textBlock1.Visibility = Visibility.Visible;
      }
      

      然后要将其隐藏,请使用MouseLeave 事件:

      button1_MouseLeave(object sender, EventArgs e)
      {
          textBlock1.Visibility = Visibility.Hidden;
      }
      

      【讨论】:

      • 感谢您的解决方案,但是如何在 WPF 代码中实现这些方法?因为我提到的是像 只有一个悬停版本
      • 类似&lt;Button Name="Foo" Content="SomeContent" MouseEnter="button1_MouseEnter"/&gt;
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-14
      • 2021-01-21
      • 2014-01-30
      • 1970-01-01
      • 2014-08-10
      • 1970-01-01
      相关资源
      最近更新 更多