我需要创建一个UserControl,它托管在一个“父”ContentControl中,该内容设置为“中心”水平和垂直对齐。
这个控件托管另一个“子”UserControl,我希望它尽可能大,而不会超出可渲染的大小。
我注意到如果我将孩子的大小设置为大于可渲染的大小,我会得到我想要的大小作为该控件上的“DesiredSize”属性。 但是我没有看到如何在不超出控制范围的情况下获得该信息。
我已经创建了这个示例以说明情况,我希望“ChildControl”的粉红色背景可以覆盖整个窗口。
为了澄清,我只能控制“ControlableElementA”和“ControlableElementB” 我无法绑定到主窗口,在实际应用程序中,我将其用作嵌入式窗口,其间具有不同级别的层次结构。
由于我之上的限制,“ChildControl”和“ParentControl”超出了我的范围。
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="300" Width="300">
<Grid>
<ContentControl Name="ParentControl" HorizontalAlignment="Center" VerticalAlignment="Center">
<Grid Name="ControlableElementA" Background="Black" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<ContentControl Name="ControlableElementB">
<Grid Name="ChildControl" Background="Pink" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Button Width="30" Height="30"></Button>
</Grid>
</ContentControl>
</Grid>
</ContentControl>
</Grid>
</Window>
非常感谢,如果描述有点神秘,我道歉
答案 0 :(得分:2)
<video width="320" height="240" src="https://www.youtube.com/watch?v=dwH34mR6ZG8" controls="controls"> </video>
和JsonConvert.SerializeObject( new{ MyModel = model})
为HorizontalAlignment
表示&#34;拉伸到父容器范围内的最大尺寸。&#34; < / p>
但是,您的父容器设置为VerticalAlignment
,这意味着您的Stretch
实际上有Center
宽度和高度。
要解决此问题,只需删除:
UserControl
来自Auto
。