我在这里写下来是因为我对这件事有很多问题,我希望你能帮助我:P
我想创建一个适合其所有儿童宽度的动态 StackPanel。我给你举个例子。
假设我的 StackPanel 目前是空的。它的宽度将是 10 (fe),其固定高度是 30。然后我想添加一个图像,我把它写下来:
BitmapImage myImage = new BitmapImage(new Uri("[PATH]"));
Image realImage = new Image();
realImage.Source = myImage;
realImage.Width = 50;
realImage.Height = myImage.Height;
myStackPanel.Children.Add(realImage);
StackPanel 并没有放大到 50px;它被固定在 10 像素,切割我的图像。当我尝试添加其他 UI 元素(如 TextBlocks 等)时也会发生同样的情况。
我试图做类似的事情
myStackPanel.Width += realImage.Width;
但是当然没有用。我试图将 StackPanel 的宽度设置为“自动”,但它也没有帮助。这是 XAML 中的 StackPanel 声明:
<Window x:Name="MainWindow1" x:Class="Proj.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="myTitle" Height="480" Width="640"
Loaded="onLoad" Background="Black" MinHeight="480" MinWidth="640">
<Grid>
...(Other Closed Tags)...
<StackPanel Orientation="Horizontal" Name="myStackPanel" Height="30" Margin="135,283,458,147"/>
</Grid>
</Window>
我需要一个 StackPanel,因为我必须显示一个动态栏,其中包含可变数量的对象,这些对象将在屏幕上执行选取框效果,从右向左滑动。我既不知道对象的数量,也不知道动态条的最终宽度。
当然,如果您知道还有其他方法可以做到这一点,我会很高兴了解它:)
谢谢!