none
WPF 窗体缩放导致容器中控件不显示 RRS feed

  • 问题

  • 我的WrapPanel容器中有12个相同大小的UserControl,WrapPanel丢到Window中,UserControl会随着窗体的放大缩小等比缩放。在由最大化还原到正常大小(1100,650)时,WrapPanel中会有几个UserControl不显示(确定UserControl还在,WrapPanel容器中一直是12个)。最终发现在不同分辨率下不显示的个数也不一样,但在我开发的电脑上是正常显示(我的分辨率是1280*800,在1920*1028分辨率下少四个,有的少两个)。请问这可能是什么原因引起的?

    2012年3月29日 14:23

答案

全部回复

  • 首先WrapPanel得规则是当一行内无法容下组件时,扩展到下一行放置。如果组件设有最小大小或者最大大小限制,或者组件本身有固定大小,当WrapPanel整个内容超出Window,就会有组件不显示。 一个很简单的例子,

    <Window x:Class="WpfApplication5.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
      <Window.Resources>
        <Style TargetType="Button">
          <Setter Property="Width" Value="200"/>
          <Setter Property="Height" Value="50"/>
        </Style>
      </Window.Resources>
      <WrapPanel>
        <Button/>
        <Button/>
        <Button/>
        <Button/>
        <Button/>
        <Button/>
        <Button/>
        <Button/>
        <Button/>
        <Button/>
        <Button/>
        <Button/>
        <Button/>
        <Button/>
        <Button/>
        <Button/>
      </WrapPanel>
    </Window>

    缩放窗体你所看到的按钮数量是不一样的。

    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年3月30日 5:18
    版主
  • 第一次加载时12个都显示的,最大化再还原后在1920*1028下是少4个,正好是两行4利,在1600*900下显示如图。这不应该是被挡住了,WrapPanel的高度跟Window是一样的要挡住 下面一排应该都没了才对哦


    2012年3月30日 13:16
  • ???
    • 已标记为答案 jiatingxiu_ 2012年4月5日 13:01
    • 已编辑 Shi Xin 2016年5月16日 9:25
    2012年3月31日 13:31
  • 是的,一般是不会有这种情况的,我看见你里面有显示网页,我想知道你是怎么设计,用的是WebBrowser组件吗?

    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年4月1日 8:38
    版主
  • 发现问题了,我的控件父容器大小忘记设置了

    2012年4月5日 13:01