【问题标题】:Stretching from the top left when changing width & height wpf更改宽度和高度 wpf 时从左上角拉伸
【发布时间】:2013-07-23 14:39:07
【问题描述】:

所以我有一个带有某种“抽屉”的窗口。当用户点击按钮时,它会从窗口后面滑出并位于窗口的右侧。

用户可以调整主窗口的大小(具体来说它是一个 scatterview 项目)。我想用窗户缩放“抽屉”。但是,我遇到了一个问题,当您调整窗口大小时,它会从右上到左调整抽屉的大小。这会将抽屉的内容放在我的窗口后面。我想保留窗口的左侧并将其向右拉伸。我希望我的图片能更好地解释它。

(注意,请原谅两张图片中的选项卡控件位置差异,对不起)

这是在带有矩形和标签控件的网格滑出之前:

这是带有矩形和标签控件的网格被滑出的时候:

这是 scatterview 项目被放大的时候,从而使抽屉变大 - 无意中将它隐藏在 scatterview 项目后面:

此时 scatterview 项目已按比例缩小,从而将抽屉缩小。很明显,容纳矩形的网格和选项卡控件正在缩放到右上角,而不是我想要的左上角。

这与我将抽屉高度以某种方式限制在主窗口的高度和宽度值这一事实有关吗?我尝试了各种右对齐值和东西都无济于事。停靠面板是否适合这个选项卡控件?以下是一些 XAML:

    <s:ScatterViewItem x:Name="Window" Orientation="0"
        Background="#FF787878" MaxWidth="500" MaxHeight="500" Center="9000,9000" CanScale="True" Visibility="Visible" RenderTransformOrigin="0.5,0.5" Width="200" Height="150" >
   <!--Bunch of other items like textboxes here-->
        <Grid x:Name="HancockDetails" Height="{Binding ActualHeight, ElementName=grid1}" VerticalAlignment="Top" Width="{Binding ActualWidth, ElementName=grid1}" Grid.Column="1" RenderTransformOrigin="0.5,0.5" FlowDirection="RightToLeft" HorizontalAlignment="Left">
        <Grid.RenderTransform>
          <TranslateTransform x:Name="hcDetailTransform" />
         </Grid.RenderTransform>
          <Rectangle>
          <TabControl>
              <TabItem>
                 <TextBlock>
                 </TextBlock>
              </TabItem>
           </TabControl>
           </Rectangle>
          </Grid>
    </Scatterviewitem>

【问题讨论】:

  • 将您的完整 xaml 发布在您拥有这两个控件的位置,很难通过提供的信息猜测上下文。
  • 我想我可以尝试截断它。以上是布局。中间还有很多单独的项目,但我很确定它们不相关。
  • 甚至添加了额外的图片来展示它是如何缩小的。

标签: c# wpf user-interface grid stretch


【解决方案1】:

我们很难猜出您是如何编写 UI 的,因此如果您不提供一些代码,我们不太可能找出您的确切问题。

但是,以一种新的方式看待这个...我在您的屏幕截图中看到了一个大矩形。这个矩形的左边是你所谓的主窗口,右边是……嗯,别的东西。我看到这个矩形已经旋转了一小部分。

你能不能把那个外部矩形做成一个稍微旋转的Grid,有两列;左栏中的主窗口和右栏中的另一个“抽屉”?然后,当用户调整窗口大小时,Grid 将自动填充空间并将所有内容保持在一起。

【讨论】:

  • 很抱歉,我已按照之前要求在原始帖子中添加了更多 XAML 代码,但格式不正确。我以前从未在 Stackoverflow 上看到过代码甚至不显示为纯文本的情况!很抱歉 >.
  • 右侧的盒子,即抽屉,我在缩放时遇到问题,它需要是左侧盒子的子项,因为它是一个 scatterview 项目。当用户触摸盒子时,它会自动继承移动、旋转、抛掷物理和缩放。请注意,右边的盒子最初是不可见的,但最初是从左边的盒子后面滑出的。我添加了另一张图片来展示这一点。
猜你喜欢
  • 2014-01-22
  • 1970-01-01
  • 2015-09-03
  • 2015-07-11
  • 1970-01-01
  • 2015-03-23
  • 1970-01-01
  • 1970-01-01
  • 2020-10-11
相关资源
最近更新 更多