C# 如何使控制比例与其内容成比例

C# 如何使控制比例与其内容成比例,c#,wpf,zooming,surface,viewbox,C#,Wpf,Zooming,Surface,Viewbox,我正在使用WPF创建一个基于触摸的交互式应用程序。该应用程序使用ScatterViewItem对象在其中保存两个可滚动菜单,一个主菜单和一个子菜单并排,并根据所选项目显示各种内容 默认情况下,ScatterViewItem可以使用触摸手势进行缩放,但问题是只有容器本身的大小会变大/缩小,而项目只是在容器内部移动得更远或更近 例如: 我希望容器和容器内的所有东西都能按比例缩放,就像图像一样 我曾尝试使用视图框将所有内容包装在其中,但这导致了一系列新问题: 一度可滚动的菜单(SurfaceScro

我正在使用WPF创建一个基于触摸的交互式应用程序。该应用程序使用
ScatterViewItem
对象在其中保存两个可滚动菜单,一个主菜单和一个子菜单并排,并根据所选项目显示各种内容

默认情况下,
ScatterViewItem
可以使用触摸手势进行缩放,但问题是只有容器本身的大小会变大/缩小,而项目只是在容器内部移动得更远或更近

例如:

我希望容器和容器内的所有东西都能按比例缩放,就像图像一样

我曾尝试使用
视图框
将所有内容包装在其中,但这导致了一系列新问题:

  • 一度可滚动的菜单(
    SurfaceScrollViewer
    )现在自动缩放,使其完全适合容器内部。这是不好的,因为单个项目的大小根据子菜单中项目的数量而变化。我需要它们保持滚动,并且对于相同数量的项目(大约3x3个),无论总数量如何,都可以放入容器中

  • TextBox
    控件现在根据内容长度更改字体大小,以使文本适合一行。我希望所有项目的字体大小保持一致,必要时换行到下一行

  • 这方面的最佳方法是什么?我是否应该使用某种绑定在每个对象的维度和其父容器的维度之间有一个固定的比例


    我的C#/WPF经验非常有限,日程安排也很紧,因此欢迎您提供任何建议和/或示例。

    您可以发布您目前拥有的xaml吗?您是否可以尝试将
    散点视图项
    s的
    水平对齐
    垂直照明
    属性设置为
    拉伸
    ?大多数控件实际上是在代码后面的C#中实现的。基本上,层次结构是:
    ScatterViewItem
    ->
    Border
    ->
    Grid
    ->,两个菜单都是
    SurfaceScrollViewer
    s。我已经按照您的建议设置了路线属性,但没有注意到任何差异。或者您的意思是让我尝试使用
    散点视图项下包含的
    视图框