将复选框绑定到滚动条.可见度

本文关键字:滚动条 可见度 绑定 复选框 | 更新日期: 2024-09-21 18:56:20

我想将scrollBarVisibilitycheckBox属性IsChecked绑定。如果IsChecked为真,则scrollBarVisibility需要为可见。

XAML:

<Controls:MetroWindow.Resources>
    <local:Nustatymai x:Key="checkBox_keitejas" />
</Controls:MetroWindow.Resources>
<!-- ..... -->
<ScrollViewer Name="tempimas" IsEnabled="True" VerticalScrollBarVisibility="Disabled" 
              Height="795" HorizontalScrollBarVisibility="{Binding IsChecked, ElementName=check1, 
              Converter={StaticResource checkBox_keitejas}}" >
</ScrollViewer>
<!-- ..... -->
<WrapPanel>
     <TextBlock>Rodyti apatini scrollBar</TextBlock>
     <CheckBox Name="check1" IsChecked="True"/>
</WrapPanel>

C#:

class Nustatymai : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if ((bool)value == true)
            return ScrollBarVisibility.Visible;
        else
            return ScrollBarVisibility.Hidden;
    }
    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

现在这个代码对我不起作用,我需要你的帮助来解决它!

将复选框绑定到滚动条.可见度

您不需要转换器来完成此操作。您可以使用DataTrigger:

<ScrollViewer Name="tempimas" IsEnabled="True" VerticalScrollBarVisibility="Visible" 
              Height="100">
                <ScrollViewer.Style>
                    <Style TargetType="ScrollViewer">
                        <Setter Property="HorizontalScrollBarVisibility" Value="Disabled"/>
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding ElementName=check1, Path=IsChecked}" Value="True">
                                <Setter Property="HorizontalScrollBarVisibility" Value="Visible" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </ScrollViewer.Style>
            </ScrollViewer>
            <WrapPanel>
                <TextBlock>Rodyti apatini scrollBar</TextBlock>
                <CheckBox Name="check1" IsChecked="True"/>
            </WrapPanel>

您的代码实际上可以工作,我认为您对滚动查看器的高度有问题。请与窗户高度核对一下。