Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在以编程方式创建的框架控件上强制使用滚动条_C#_Wpf - Fatal编程技术网

C# 如何在以编程方式创建的框架控件上强制使用滚动条

C# 如何在以编程方式创建的框架控件上强制使用滚动条,c#,wpf,C#,Wpf,这是一个非常简单的问题,就我的一生而言,我无法理解为什么以编程方式创建的Frame没有继承的ScrollViewer,因此没有HorizontalScrollBarVisibility或VerticalScrollBarVisibility属性 如何将滚动条添加到此帧(而不只是将滚动条添加到帧源) 请注意,我还可以看到导航用户界面,并希望在顶部保留固定用户界面的行为,其内容位于该滚动条的下方。将框架放在滚动条查看器中 或者只需通过ScrollViewer中附加的属性VerticalScrollB

这是一个非常简单的问题,就我的一生而言,我无法理解为什么以编程方式创建的
Frame
没有继承的
ScrollViewer
,因此没有
HorizontalScrollBarVisibility
VerticalScrollBarVisibility
属性

如何将滚动条添加到此帧(而不只是将滚动条添加到帧源)


请注意,我还可以看到导航用户界面,并希望在顶部保留固定用户界面的行为,其内容位于该滚动条的下方。

框架
放在
滚动条查看器

或者只需通过
ScrollViewer中附加的属性
VerticalScrollBarVisibility
和/或
HorizontalScrollBarVisibility
进行设置

        Frame f = new Frame();
        ScrollViewer.SetVerticalScrollBarVisibility(f, ScrollBarVisibility.Auto);
        ScrollViewer.SetHorizontalScrollBarVisibility(f, ScrollBarVisibility.Auto);

您可以通过更改
框架
对象使用的
内容模板
来完成此操作,以便使用
滚动查看器
呈现其内容:

<Frame>
    <Frame.ContentTemplate>
        <DataTemplate>
            <ScrollViewer>
                <ContentControl Content="{Binding}"/>
            </ScrollViewer>
        </DataTemplate>
    </Frame.ContentTemplate>
</Frame>


这是我的第一个猜测,但是在父子关系中,框架导航栏不也会随着页面滚动吗?
NavigationUI
事实上,当框架是
ScrollBarViewer
的子对象时,它会滚动。如果我不想保留导航界面,这将是一个可行的解决方案。啊,这有点像设置z顺序,你必须联系另一个类来做。奇怪
Frame
应该继承
ScrollViewer
这只是一个奇怪的概念,当我试图在面向对象环境中开发时,试图记住这些外部类。从现在开始,写一个扩展方法来包含在我的项目中来处理这个问题几乎是值得的。对于失败的投票者,你能给出这样做的原因吗?上述解决方案也解决了OP的原始问题,这就是如何将滚动条添加到框架内容中的方法,1)不需要将滚动条添加到框架的源代码中,2)阻止导航UI与框架内容一起滚动。这是一个XAML解决方案,因此与编程创建的框架无关,因为在设计时创建的框架继承了HorizontalScrollBarVisibilityVerticalScrollBarVisibility属性自动生成,因此根本不需要模板。啊,很抱歉。谢谢你的解释!