【问题标题】:WPF NavigationWindow scrollbarWPF NavigationWindow 滚动条
【发布时间】:2011-08-25 17:05:07
【问题描述】:

我在这里看到了一些关于 WPF 滚动条的帖子,答案通常是使用 ScrollViewer。问题是,我只能让它与静态大小的窗口一起工作。如果调整窗口大小,则滚动查看器会被切断。

我希望出现 NavigationWindow 滚动条,有什么提示吗?我正在编写一个需要在各种显示分辨率下工作的应用程序。

【问题讨论】:

  • 发布一些不适合您的 xaml。我怀疑您的 ScroolView 未配置为填充到其容器的大小。
  • 果然,我正在尝试为您制作样本,并且样本当然有效。我将发布一个解决方案,说明为什么我的原始代码不起作用以及我的示例为什么起作用。

标签: wpf scrollbar navigationwindow


【解决方案1】:

事实证明,如果您设置 Page 控件的大小,则滚动查看器在调整大小时不会随窗口一起调整大小。如果您有以下代码,您的滚动查看器将无法正常工作:

<Page x:Class="SomeNamespace.SamplePage"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
  mc:Ignorable="d" Title="SamplePage" Height="400" Width="400">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <ScrollViewer HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalScrollBarVisibility="Auto">
        <Border x:Name="BigBadBorder" Height="1000" Width="2000" Background="HotPink" Margin="5">
            <TextBlock Text="Waldo" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </Border>
    </ScrollViewer>
</Grid>
</Page>

如果你简单地省略页面高度和宽度属性,如下所示,它会正常工作:

<Page x:Class="SomeNamespace.SamplePage"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
  mc:Ignorable="d" Title="SamplePage">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <ScrollViewer HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalScrollBarVisibility="Auto">
        <Border x:Name="BigBadBorder" Height="1000" Width="2000" Background="HotPink" Margin="5">
            <TextBlock Text="Waldo" HorizontalAlignment="Center" VerticalAlignment="Center"/>
        </Border>
    </ScrollViewer>
</Grid>
</Page>

最后的简单解决方案:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 2016-09-02
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多