调整大小后的 WPF 水平滚动条
WPF Horizontal Scrollbar after resize
我在 WPF 中构建了一个应用程序。
我的应用程序从 1920 像素流畅地下降到 1440 像素。
我的问题是我希望应用仅在 window 大小小于 1440 像素时显示水平滚动条。
目前,如果我添加 horizontalscrollbarvisibility="Auto" ,应用程序会失去流动性。我需要将它的大小从 1920 调整到 1440,然后才具有水平滚动条。
您可以在 XAML 中使用触发器来完成,或者您可以在代码中完成:
private void MainWindow_OnSizeChanged(object sender, SizeChangedEventArgs e)
{
var actualheigh = this.ActualHeight;
ScrollViewer.VerticalScrollBarVisibility = actualheigh < 500 ? ScrollBarVisibility.Visible : ScrollBarVisibility.Hidden; //ScrollViewer is the name of you scrollviewer
}
感谢@NawedNabiZada。
小问题是当水平出现时我们会失去流动性。因此,通过对 Nawed 的代码进行一些调整,这就像一个魅力:
private void MainWindow_OnSizeChanged(object sender, SizeChangedEventArgs e)
{
var actualwidth = Application.Current.MainWindow.ActualWidth;
ScrollViewer.HorizontalScrollBarVisibility = actualwidth < 1439 ? ScrollBarVisibility.Visible : ScrollBarVisibility.Disabled; //ScrollViewer is the name of you scrollviewer
if (ScrollViewer.HorizontalScrollBarVisibility == ScrollBarVisibility.Visible)
{
this.ActiveItem.Width = 1099;
}
else
{
this.ActiveItem.Width = Double.NaN;
}
}
我在 WPF 中构建了一个应用程序。 我的应用程序从 1920 像素流畅地下降到 1440 像素。 我的问题是我希望应用仅在 window 大小小于 1440 像素时显示水平滚动条。
目前,如果我添加 horizontalscrollbarvisibility="Auto" ,应用程序会失去流动性。我需要将它的大小从 1920 调整到 1440,然后才具有水平滚动条。
您可以在 XAML 中使用触发器来完成,或者您可以在代码中完成:
private void MainWindow_OnSizeChanged(object sender, SizeChangedEventArgs e)
{
var actualheigh = this.ActualHeight;
ScrollViewer.VerticalScrollBarVisibility = actualheigh < 500 ? ScrollBarVisibility.Visible : ScrollBarVisibility.Hidden; //ScrollViewer is the name of you scrollviewer
}
感谢@NawedNabiZada。
小问题是当水平出现时我们会失去流动性。因此,通过对 Nawed 的代码进行一些调整,这就像一个魅力:
private void MainWindow_OnSizeChanged(object sender, SizeChangedEventArgs e)
{
var actualwidth = Application.Current.MainWindow.ActualWidth;
ScrollViewer.HorizontalScrollBarVisibility = actualwidth < 1439 ? ScrollBarVisibility.Visible : ScrollBarVisibility.Disabled; //ScrollViewer is the name of you scrollviewer
if (ScrollViewer.HorizontalScrollBarVisibility == ScrollBarVisibility.Visible)
{
this.ActiveItem.Width = 1099;
}
else
{
this.ActiveItem.Width = Double.NaN;
}
}