我有一个代码片段,当前以Grid格式返回。
private Grid GetImage(PlacemarkList locationDetail)
{
Grid gridPushPin = new Grid();
ImageBrush img = new ImageBrush();
img.ImageSource = locationDetail.preferredCashback.Equals("1") ? new BitmapImage {
UriSource = Constants.CashbackIconUri,
DecodePixelWidth = 36,
DecodePixelHeight = 59
} : new BitmapImage {
UriSource = Constants.ATMIconUri,
DecodePixelWidth = 36, DecodePixelHeight = 59
};
TextBlock IndexText = new TextBlock();
IndexText.TextAlignment = TextAlignment.Center;
IndexText.Text = locationDetail.IndexNum.ToString();
gridPushPin.Background = img;
gridPushPin.Tag = locationDetail.bankAddress;
gridPushPin.Tap += grid_Tap;
return gridPushPin;
}
但我想将网格作为图像返回(将我生成的网格转换为图像)。任何人都可以帮助如何实现这一目标。
答案 0 :(得分:0)
您可以使用VisualBrush
将任何UIElement
的副本绘制到任何其他地方。这样的事情怎么样:
<Rectangle Width="150" Height="150">
<Rectangle.Fill>
<VisualBrush Visual="{Binding ElementName=NameOfYourGrid}" />
</Rectangle.Fill>
</Rectangle>
答案 1 :(得分:0)
答案 2 :(得分:0)
public class MyWrapperClass
{
private DataGrid dataGrid;
public MyWrapperClass(DataGrid grid)
{
this.dataGrid = grid;
}
public DataGrid MyGrid
{
get
{
return this.grid;
}
set
{
this.grid = value;
}
}
public ImageBrush MyImageBrush
{
get
{
this.grid.Background as ImageBrush;
}
set
{
this.grid.Background = value;
}
}
}
答案 3 :(得分:-1)
您正在创建一个Grid,因此您将返回一个Grid。
改为创建图片。类似的东西:
Image image = new Image();
image.Source = "myImageURL";
这是来自内存,因此实际代码可能会根据您需要做的事情而有所不同。
基本上,图片的Source
需要与您在当前代码中设置ImageSource
的方式类似,但您可以选择使用包网址来使用存储为而不是资源。
在评论中澄清之后进行编辑:因此您希望将网格控件作为图像进行控制。 This answer应该有所帮助。