rak*_*ete 3 wpf binding scrollviewer wpf-controls
我想为我的scrollviewer添加边框.仅当ScrollViewer的ScrollBar可见时(VerticalScrollBarVisibility设置为"Auto")才会显示此顺序
谢谢你!
小智 8
您可以使用样式和触发器执行此操作,如下所示:
<Border BorderBrush="Black">
<Border.Style>
<Style>
<Setter Property="Border.Visibility" Value="Visible" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=theScrollViewer, Path=ComputedVerticalScrollBarVisibility}" Value="Collapsed">
<Setter Property="Border.Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<ScrollViewer Name="theScrollViewer">
</ScrollViewer>
</Border>
Run Code Online (Sandbox Code Playgroud)
使用Binding和Converter.
public sealed class VisibilityToBorderThicknessConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
try
{
var flag = (Visibility)value;
if (flag == Visibility.Visible)
return new Thickness(0);
else
return new Thickness(1);
}
catch
{
return new Thickness(0);
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Run Code Online (Sandbox Code Playgroud)
和你的 xaml 相比:
<ScrollViewer Name="blah">
<Border BorderThickness="{Binding ElementName=blah, Path=VerticalScrollBarVisibility , Converter={StaticResources VisibilityToBorder}}">
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
不要忘记将您的转换器添加到资源中!
GL&HF
| 归档时间: |
|
| 查看次数: |
11544 次 |
| 最近记录: |