WPF窗口中的可拖动和自动调整用户控件

时间:2012-12-17 13:28:15

标签: c# wpf

我正在制作WPF Hud,而且我不是WPF专家。

我需要一个带有可拖动用户控件的窗口,当我展开/缩小窗口时,它会自动调整大小。

我可以通过使用Canvas容器并使用Window的MouseMove事件来实现第一个功能。

我可以通过使用Grid容器并将子设置的两个属性Horizo​​ntalAlignment VerticalAlignment设置为Strech来实现第二个功能。

当然我不能同时使用这两个容器,那么是否有第三个容器可以帮助我完成这样的要求?

其实我正在尝试使用画布并手动确定儿童的宽度/高度,但我不喜欢这种方法。

有什么建议吗?

谢谢, 卢卡

1 个答案:

答案 0 :(得分:1)

了解有关拖动控件等的详细信息,请尝试以下操作:

<Window x:Class="AdHocWpf.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="439" Width="616"
    Title="MainWindow">
    <Viewbox>
        <Canvas Width="600" Height="400" Background="Blue">
            <Rectangle Stroke="Orange" Width="200" Height="100" Canvas.Left="10" Canvas.Top="5"/>
            <Ellipse Stroke="Yellow" Width="350" Height="200" Canvas.Left="225" Canvas.Top="150"/>
        </Canvas>
    </Viewbox>
</Window>

这将创建一个初始大小为600x400的Canvas对象。调整窗口大小时,画布及其中的对象将被缩放,以便它们占用相同数量的相对空间。您还需要适当调整包含窗口的大小...正常可调整大小的窗口垂直有39个像素的铬,水平有16个像素,所以请考虑到这一点。