我在WPF中有一个ContentControl,里面有一个图像
ContentControl myContentControl = new ContentControl();
myContentControl.Content = image;
如何在ContentControl内的图像旁边添加文本块? 谢谢。
答案 0 :(得分:1)
您需要更改contentControl的属性ContentTemplate
,以及ContentTemplate
,这里有一些解释:
获取或设置用于显示ContentControl内容的数据模板。
您还需要创建一个表示数据的类,如下所示:
public class ImageInfo
{
public string Caption { get; set; }
public ImageSource Image { get; set; }
}
最好在XAML中创建ContentControl
,如下所示:
<ContentControl x:Name="cc">
<ContentControl.ContentTemplate>
<DataTemplate>
<StackPanel>
<Image Source="{Binding Image}" />
<TextBlock Text="{Binding Caption}" />
</StackPanel>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
然后,将数据分配给ContentControl:
cc.Content = new ImageInfo() { Caption = "Hello", Image = new BitmapImage(new System.Uri("/Assets/User.jpg", UriKind.Relative)) };
答案 1 :(得分:1)
您正在做的事情似乎不熟悉MVVM
:
请检查here
简易解决方案
但如果您想要丑陋的解决方案并在您的代码中创建UIElement
- 请按照以下步骤操作:
public static ContentControl CreateControl(string title, Uri path)
{
//Create your image
BitmapImage bitmapImage = new BitmapImage(path);
Image image = new Image()
{
Source = bitmapImage
};
//Create your Text
TextBlock textB = new TextBlock()
{
Text = title
};
//Put them together
StackPanel content = new StackPanel();
content.Children.Add(image);
content.Children.Add(textB);
//Add this to the content control
return new ContentControl()
{
Content = content
};
}