WPF之Visibility的基础用法

Visibility有三种用法,
第一个:Visible 元素在窗体中正常显示
第二个:Collaspsed 元素不显示,也不占用空间
第三个:Hidden 元素不显示,但是任然为它保留空间
我用Visibility=“Hidden”来隐藏我的页面
在这里插入图片描述
页面在DataGrid中用Visibility=“Hidden”

XAML代码:
  <Grid  HorizontalAlignment="Center" VerticalAlignment="Center"  Height="200" Width="200" Grid.ColumnSpan="8" Grid.RowSpan="6">
                <DataGrid x:Name="DG_SP" IsReadOnly="True" AutoGenerateColumns="False" CanUserResizeColumns="False" CanUserResizeRows="False"  SelectionMode="Single" CanUserReorderColumns="False" AlternationCount="2"  RowHeaderWidth="0" CanUserAddRows="False" VerticalAlignment="Top" Visibility="Hidden" SelectedCellsChanged="DG_SP_SelectedCellsChanged">
                    <DataGrid.Background>
                        <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                            <LinearGradientBrush.GradientStops>
                                <GradientStop Color="#FFE6F2F7" Offset="0"/>
                                <GradientStop Color="White" Offset="0.1"/>
                                <GradientStop Color="White" Offset="0.4"/>
                                <GradientStop Color="#FFE6F2F7" Offset="0.81"/>
                            </LinearGradientBrush.GradientStops>
                        </LinearGradientBrush>
                    </DataGrid.Background>
                    <DataGrid.Columns >
                        <DataGridTextColumn Header="行号" Binding="{Binding number}" Width="80" />
                        <DataGridTextColumn Header="编码" Visibility="Collapsed" Binding="{Binding CommodityInforID}"  Width="10"/>
                        <DataGridTextColumn Header="商品条码" Binding="{Binding CommodityCode}" Width="120" />
                        <!--<DataGridTextColumn Header="打开"  Visibility="Collapsed" Binding="{Binding as_passenger_type_id}"  Width="10"  />-->
                        <DataGridTextColumn Header="店内码" Binding="{Binding SecondCode}"  Width="70"  />
                        <DataGridTextColumn Header="商品名称" Binding="{Binding CommodityName}"  Width="80" />
                        <DataGridTextColumn Header="数量" Binding="{Binding ss}"  Width="70"  />
                        <DataGridTextColumn Header="金额" Binding="{Binding ee}"  Width="70"  />
                    </DataGrid.Columns>
                </DataGrid>
            </Grid>
按钮调用代码:
private void BTT_SP_Click(object sender, RoutedEventArgs e)
        {
            DG_SP.Visibility = Visibility.Visible;//显示页面
            DataTable mm = myFrm_MerchandiseInventoryClient.Frm_CommodityInventoryEnquiry().Tables[0];
            DG_SP.ItemsSource = mm.DefaultView;
        }

功能页面:
在这里插入图片描述

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF 中,`Visibility` 属性常用于控制 UI 元素的显示和隐藏,它有三种取值:`Visible`(可见)、`Collapsed`(不可见但仍占据空间)、`Hidden`(不可见且不占据空间)。我们可以使用三目运算符在绑定时动态设置 `Visibility` 的值,示例如下: ```xaml <Grid> <TextBlock Text="这是一个文本框" Visibility="{Binding IsVisible, Converter={StaticResource BoolToVisibilityConverter}}"/> </Grid> ``` 其中,`IsVisible` 是绑定的属性或字段,它的类型为 `bool`。我们还使用了一个名为 `BoolToVisibilityConverter` 的转换器,它可以将 `bool` 类型的值转换为 `Visibility` 枚举类型的值。`BoolToVisibilityConverter` 的代码可以参考下面的示例: ```csharp public class BoolToVisibilityConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value is bool isVisible) { return isVisible ? Visibility.Visible : Visibility.Collapsed; } return Visibility.Collapsed; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { if (value is Visibility visibility) { return visibility == Visibility.Visible; } return false; } } ``` 在上面的示例中,`Convert` 方法将 `bool` 类型的值转换为 `Visibility` 枚举类型的值,如果输入值为 `true`,则返回 `Visibility.Visible`;否则返回 `Visibility.Collapsed`。`ConvertBack` 方法则将 `Visibility` 枚举类型的值转换为 `bool` 类型的值,如果输入值为 `Visibility.Visible`,则返回 `true`;否则返回 `false`。 使用三目运算符和转换器,我们可以方便地根据条件动态地设置 UI 元素的可见性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值