我希望能够动态调整内容控件的大小。
这是一个简单的例子:
...
<Slider x:Name="width" Minimum="40" Value="100" Maximum="300"/>
...
<ContentPresenter Width="{Binding Value, ElementName=width}" Content="Some value">
<ContentPresenter.ContentTemplate>
<DataTemplate>
<Grid MaxWidth="200" MinWidth="80">
<Rectangle Fill="Wheat" />
<TextBlock Text="{Binding}"/>
</Grid>
</DataTemplate>
</ContentPresenter.ContentTemplate>
</ContentPresenter>
鉴于此示例,我想强制内容 ContentPresenter 的宽度保持在其生成的子项的最小和最大宽度内(在本例中为 80 - 200)。
显然,通过这样一个简单的例子,我可以改变滑块的范围,但我的实际情况更复杂。我正在尝试将弹出屏幕的大小限制为其生成的内容。我无法在弹出窗口上设置明确的范围,因为我事先不知道内容会是什么样子。内容必须能够自我限制。
不幸的是,孩子的 MaxWidth 和 MinWidth 几乎被忽略了。当父级设置较小时,MinWidth 会导致裁剪。MaxWidth 会导致大量空白空间。看起来我必须在动态更新 Width 值的同一位置设置 MaxWidth 和 MinWidth。