static public ImageBrush GetImageBrush(UIElement element)
{
// 컨트롤을 이미지 브러쉬로 만들어서 Adorner에 채움.
double left = Canvas.GetLeft(element);
double top = Canvas.GetTop(element);
var innerBitmap = new RenderTargetBitmap(
(int)left + (int)element.RenderSize.Width,
(int)top + (int)element.RenderSize.Height,
96d,
96d,
PixelFormats.Pbgra32);
innerBitmap.Render(element);
var brush = new ImageBrush(innerBitmap)
{
ViewboxUnits = BrushMappingMode.Absolute,
Viewbox =
new Rect(left, top,
element.RenderSize.Width,
element.RenderSize.Height)
};
return brush;
}
2009.04.01 조금 더 유연하게 수정했음.
11 static public ImageBrush GetImageBrush(UIElement element, double cutTop, double cutBottom, double cutLeft, double cutRight)
12 {
13 double left = Canvas.GetLeft(element);
14 double top = Canvas.GetTop(element);
15 var innerBitmap = new RenderTargetBitmap(
16 (int)(left + element.RenderSize.Width),
17 (int)(top + element.RenderSize.Height),
18 96d,
19 96d,
20 PixelFormats.Pbgra32);
21 innerBitmap.Render(element);
22 var brush = new ImageBrush(innerBitmap)
23 {
24 ViewboxUnits = BrushMappingMode.Absolute,
25 Viewbox =
26 new Rect(left + cutLeft, top + cutTop,
27 element.RenderSize.Width - cutLeft - cutRight,
28 element.RenderSize.Height - cutTop - cutBottom)
29 };
30
31
32 return brush;
33 }
34
35 static public ImageBrush GetImageBrush(UIElement element)
36 {
37 return GetImageBrush(element, 0.0, 0.0, 0.0, 0.0);
38 }




Leave your greetings here.
엘리먼트를 드래그 하는 시점에 UI 코드 용으로 사용하면 좋을 듯 합니다.
좋은 거 보고 갑니다.