Tôi không đồng ý với hai câu trả lời khác tại đây. Không cần phải thêm lưới để bọc nội dung. Stackpanel là đủ.
Trong xaml, hãy thêm chồng xếp chồng vào nơi bạn cần nội dung.
<StackPanel Name="myStack" Orientation="Horizontal"></StackPanel>
Sau đó, trong đoạn code phía sau, giống như trong một handler nút hoặc khi tải cửa sổ thêm này
Image coolPic = new Image() {
Name="pic",
Source = new BitmapImage(new Uri("pack://application:,,,/images/cool.png")),
Stretch = Stretch.None // this preserves the original size, fill would fill
};
TextBlock text = new TextBlock() {
Name = "myText",
Text = "This is my cool Pic"
};
myStack.Children.Add(coolPic); // adding the pic first places it on the left
myStack.Children.Add(text); // the text would show up to the right
Bạn có thể trao đổi vị trí của hình ảnh và văn bản bằng cách thêm văn bản đầu tiên thì hình ảnh.
Nếu bạn không thấy hình ảnh, đảm bảo hành động xây dựng của hình ảnh được đặt thành tài nguyên trong cửa sổ thuộc tính của hình ảnh.
Để mã hữu ích hơn hoặc động hơn, bạn cần có cách thay đổi văn bản hoặc hình ảnh.
Vì vậy, cho phép nói rằng bạn đã muốn thay đổi những và bạn đi trước và làm một
((TextBlock)FindName("myText")).Text = "my other cool pic";
Bạn mong chờ văn bản phải được thay đổi nhưng những gì sẽ xảy ra?
Object reference not set to an instance of an object.
Drats nhưng tôi đã đặt tên cho nó. Bạn cần phải thêm
// register the new control
RegisterName(text.Name, text);
Để bạn có thể truy cập vào trình soạn thảo sau này. Điều này là cần thiết vì bạn đã thêm điều khiển vào khung sau khi nó được xây dựng và hiển thị.Vì vậy, mã cuối cùng trông giống như sau khi đăng ký hình ảnh quá
Image coolPic = new Image() {
Name="pic",
Source = new BitmapImage(new Uri("pack://application:,,,/images/cool.png")),
Stretch = Stretch.None // this preserves the original size, fill would fill
};
// register the new control
RegisterName(coolPic.Name, coolPic);
TextBlock text = new TextBlock() {
Name = "myText",
Text = "This is my cool Pic"
};
// register the new control
RegisterName(text.Name, text);
myStack.Children.Add(coolPic);
myStack.Children.Add(text);
Câu trả lời tuyệt vời !! – CharlieShi