C# 特定栏目的屏幕截图&;网格中的行
假设我有一个3列2行的网格。我想拍摄第2-3列和第1行中的内容。这可能吗 现在我可以用这个方法截图C# 特定栏目的屏幕截图&;网格中的行,c#,wpf,screenshot,C#,Wpf,Screenshot,假设我有一个3列2行的网格。我想拍摄第2-3列和第1行中的内容。这可能吗 现在我可以用这个方法截图 private void Capture() { SaveFileDialog dlg = new SaveFileDialog(); dlg.FileName = "hello"; dlg.Filter = "JPEG (*.jpg)|*.jpg|PNG (*.png)";
private void Capture()
{
SaveFileDialog dlg = new SaveFileDialog();
dlg.FileName = "hello";
dlg.Filter = "JPEG (*.jpg)|*.jpg|PNG (*.png)";
dlg.FilterIndex = 1;
if (dlg.ShowDialog().GetValueOrDefault(false))
{
string filePath = dlg.FileName;
plotter.SaveScreenshot(filePath);
e.Handled = true;
}
}
plotter是ChartPlotter(DynamicDataDisplay中的一个类),它有一个名为“SaveScreenshot”的方法
但它只拍摄了特定绘图仪的屏幕截图。我的想法是拥有多个绘图仪,并能够对所有绘图仪进行截图。为此,我可以将它们放在StackPanel或网格中,并对整个元素(包含所有绘图仪)拍照。是的。我不知道你到底想在什么情况下使用它。但是,如果您只想将其保存在另一个数组中,例如,您可以使用for循环来执行此操作。对于您的示例,只需要一个循环:
int[,] array = new int[2,3];
static int[,] ScreenShot(int row, int colum1, int colum2)
{
int[,] temp = new int[colum2-colum1, 1];
for (int i = 0; i < colum2-colum1; i++)
{
temp[i,1] = array[i+colum1,row];
}
}
int[,]数组=新的int[2,3];
静态int[,]屏幕截图(int行、int列1、int列2)
{
int[,]temp=新int[colum2-colum1,1];
对于(int i=0;i
如果希望它有更多的行,可以扩展它。是的。我不知道你到底想在什么情况下使用它。但是,如果您只想将其保存在另一个数组中,例如,您可以使用for循环来执行此操作。对于您的示例,只需要一个循环:
int[,] array = new int[2,3];
static int[,] ScreenShot(int row, int colum1, int colum2)
{
int[,] temp = new int[colum2-colum1, 1];
for (int i = 0; i < colum2-colum1; i++)
{
temp[i,1] = array[i+colum1,row];
}
}
int[,]数组=新的int[2,3];
静态int[,]屏幕截图(int行、int列1、int列2)
{
int[,]temp=新int[colum2-colum1,1];
对于(int i=0;i
如果你想让它有更多的行,你可以扩展它。这不是最快或最好的解决方案,但你可以制作一个绘图仪阵列,然后创建一个临时的小图片阵列(使用比jpg更无损的东西),并在最后将它们合并。这对你有用吗?这不是最快或最好的解决方案,但你可以制作一个绘图仪阵列,然后创建一个小图片临时阵列(使用比jpg更无损的东西),并在最后将它们合并。这对您有用吗?谢谢,但我如何使用该数组保存图片?这会有点复杂。你能多描述一点你想在其中使用它的情况吗?这样我就可以给出更好的答案了。我更新了我的问题,对它做了更多的解释。非常感谢,谢谢。但是我如何使用这个数组来保存图片呢?那会有点复杂。你能多描述一点你想在其中使用它的情况吗?这样我就可以给出更好的答案了。我更新了我的问题,对它做了更多的解释。非常感谢,但是屏幕上没有什么东西像是在特定区域捕获所有内容?(例如,在矩形、堆叠面板、网格中…)。还有一个问题,那就是我的应用程序中有一个很好的渐变背景,并且绘图仪被设置为具有透明背景。如果我用上面描述的方式捕捉它们,结果的背景是黑色的。所以我认为我唯一的选择就是找出如何在特定的地方截图。谢谢你的答案(如果你画了所有的东西,就有了。Iknow XNA有一个很好的方法可以使用Texture2D类或RenderTarget2D类截图。两者都有可能这样做。如果没有,您也可以编写一些hlsl代码来渲染屏幕的一部分,并将其保存为图像。谢谢,我将研究XNA。早上4点40分,该睡觉了。如果我找到了,我会发布解决方案。但这不是像在屏幕上特定区域捕获所有内容那样的事情吗?(例如,在矩形、堆叠面板、网格中…)。还有一个问题,那就是我的应用程序中有一个很好的渐变背景,并且绘图仪被设置为具有透明背景。如果我用上面描述的方式捕捉它们,结果的背景是黑色的。所以我认为我唯一的选择就是找出如何在特定的地方截图。谢谢你的答案(如果你画了所有的东西,就有了。Iknow XNA有一个很好的方法可以使用Texture2D类或RenderTarget2D类截图。两者都有可能这样做。如果没有,您也可以编写一些hlsl代码来渲染屏幕的一部分,并将其保存为图像。谢谢,我将研究XNA。早上4点40分,该睡觉了。如果我找到了,我会发布解决方案。