私はこのことに多くの問題を抱えているので、ここに書き留めています。あなたが私を助けてくれることを願っています: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 まで拡大しません。10pxに固執して、私の画像を切り取っています。TextBlocks などの他の UI 要素を追加しようとすると、同じことが起こります。
私は次のようなことをしようとしました
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 が必要です。オブジェクトの数も動的バーの最終的な幅もわかりません。
もちろん、それを行う別の方法があることを知っている場合は、それについて何かを学んでいただければ幸いです:)
ありがとうございました!