こんにちは、私はレイアウトという名前のキャンバスを持っています。私はコードの背後にそれにいくつかの子を追加したい。ここにコードがあります。動的に追加されたコントロールがレンダリングされない、silverlight
private void AddItem(int TruePosition, int CurrentPosition, string ImageFileName)
{
Image img = new Image();
img.Source = new BitmapImage(new Uri(@"/Images/" + ImageFileName, UriKind.Relative));
img.Width = 100.0;
img.Height = 400.0;
img.VerticalAlignment = System.Windows.VerticalAlignment.Bottom;
img.Stretch = Stretch.None;
Border b = new Border();
b.SetValue(Canvas.TopProperty, 200.0);
b.SetValue(Canvas.LeftProperty, (double)CurrentPosition);
b.SetValue(Canvas.ZIndexProperty, 1);
b.Background = new SolidColorBrush(Colors.Blue);
b.MouseMove += new MouseEventHandler(Border_MouseMove);
b.MouseLeftButtonDown += new MouseButtonEventHandler(Border_MouseLeftButtonDown);
b.MouseLeftButtonUp += new MouseButtonEventHandler(Border_MouseLeftButtonUp);
b.Child = img;
Layout.Children.Add(b);
UpdateLayout();
}
私は境界線(画像なし)を追加しようとするとまだレンダリングされていないので、画像Uriはおそらく良いです。また、ボタンのクリックイベントハンドラからこのAddItem関数を呼び出して、初期化を問題にしないでください。おそらく、私はここに非常に基本的なものがありません。どんなアイディアも大歓迎です、ありがとうございます。
更新:おそらくブラウザキャッシュに問題がありました。境界が追加されていますが、境界線の画像が表示されません。 Visual Studioプロジェクトでは、画像ファイルを持つ画像ディレクトリがあります。私は彼らへの道を間違って設定していますか?
これは機能しています。最初/前の画像は必要ありません。新しいUri(@ "Images /" + ImageFileName、UriKind.Relative)は正しいです。 – rescueme