当前位置:  开发笔记 > 编程语言 > 正文

如何将WPF用户控件的宽度拉伸到其窗口?

如何解决《如何将WPF用户控件的宽度拉伸到其窗口?》经验,为你挑选了3个好方法。

我有一个用我的用户控件的窗口,我想使usercontrol宽度等于窗口宽度.怎么做?

用户控件是一个水平菜单,包含一个包含三列的网格:




这就是我想要窗口宽度的原因,将用户控件拉伸到100%宽度,第二列是相对的.

编辑:

我正在使用网格,有Window的代码:


    
        
             
        
    

Arjan Einbu.. 43

您需要确保您的usercontrol没有在usercontrol的xaml文件中设置它的宽度.只需从中删除Width ="..."就可以了!

编辑:这是我测试它的代码:

SOUserAnswerTest.xaml:


    
        
            
            
            
        
        a
        b
        c
    

Window1.xaml:


    

        
    


Michael.. 21

WPF中的Canvas不提供太多的自动布局支持.我试图避开它们因为这个原因(Horizo​​ntalAlignment和VerticalAlignment不能按预期工作),但我得到了你的代码来处理这些微小的修改(将控件的宽度和高度绑定到画布的ActualWidth/ActualHeight).




    
         
        
    

Canvas是这里的问题.如果你实际上没有使用画布在布局或Z-Order"压缩"方面提供的功能(想想PhotoShop中的flatten命令),我会考虑使用像Grid这样的控件而不是你最终必须学习控件的怪癖,它的工作方式与WPF所期望的不同.



1> Arjan Einbu..:

您需要确保您的usercontrol没有在usercontrol的xaml文件中设置它的宽度.只需从中删除Width ="..."就可以了!

编辑:这是我测试它的代码:

SOUserAnswerTest.xaml:


    
        
            
            
            
        
        a
        b
        c
    

Window1.xaml:


    

        
    



2> Michael..:

WPF中的Canvas不提供太多的自动布局支持.我试图避开它们因为这个原因(Horizo​​ntalAlignment和VerticalAlignment不能按预期工作),但我得到了你的代码来处理这些微小的修改(将控件的宽度和高度绑定到画布的ActualWidth/ActualHeight).




    
         
        
    

Canvas是这里的问题.如果你实际上没有使用画布在布局或Z-Order"压缩"方面提供的功能(想想PhotoShop中的flatten命令),我会考虑使用像Grid这样的控件而不是你最终必须学习控件的怪癖,它的工作方式与WPF所期望的不同.



3> Bubblewrap..:

Canvas在您的窗口中至关重要吗?如果没有,请尝试将其删除并将Grid作为主面板.除非指定,否则Canvas没有大小,而Grid通常会占用所有可用空间.在Canvas内部,Grid将没有可用空间.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有