复制或剪切文件到剪切板
/// <summary>
/// 复制或剪切文件到剪切板
/// </summary>
/// <param name="files">文件路径数组</param>
/// <param name="cut">true:剪切;false:复制</param>
public static void CopyToClipboard(string[] files, bool cut)
{
if (files == null) return;
IDataObject data = new DataObject(DataFormats.FileDrop, files);
MemoryStream memo = new MemoryStream(4);
byte[] bytes = new byte[] { (byte)(cut?2:5),0,0,0};
memo.Write(bytes,0,bytes.Length);
data.SetData("PreferredDropEffect",memo);
Clipboard.SetDataObject(data,false);
}
复制文本
private void La_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
StackPanel st = e.Source as StackPanel;
StringBuilder Copystr = new StringBuilder();
foreach (TextBox tb in GetChildObjects<TextBox>(st))
{
Copystr.Append(" ");
Copystr.Append(tb.Text);
SolidColorBrush myBrush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(0xFF, 0xad, 0xd6, 0xff));
tb.Background = myBrush;
}
Clipboard.SetText(Copystr.ToString());
MessageToolTip.Show("数据复制成功");
}
保存图片
// UI --> Png
public static void UISaveToPng(this FrameworkElement ui, string fileName)
{
int width = (int)ui.ActualWidth;
int height = (int)ui.ActualHeight;
RenderTargetBitmap bmp = new RenderTargetBitmap(width, height, 96d, 96d, PixelFormats.Pbgra32);
bmp.Render(ui);
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bmp));
FileStream fs = new FileStream(fileName, FileMode.Create);
encoder.Save(fs);
fs.Close();
}
转BitmapImage
int width = (int)grid2DMap.ActualWidth;
int height = (int)grid2DMap.ActualHeight;
RenderTargetBitmap bmp = new RenderTargetBitmap(width, height, 96d, 96d, PixelFormats.Pbgra32);
bmp.Render(grid2DMap);
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bmp));
BitmapImage bitmapImage = new BitmapImage();
using (var memoryStream = new MemoryStream())
{
encoder.Save(memoryStream);
memoryStream.Seek(0, SeekOrigin.Begin);
bitmapImage.BeginInit();
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
bitmapImage.StreamSource = memoryStream;
bitmapImage.EndInit();
}
转System.Drawing.Image
MemoryStream memoryStream = new MemoryStream(); encoder.Save(memoryStream); System.Drawing.Image img = System.Drawing.Image.FromStream(memoryStream);










