2011-02-23 6 views
0

사실 저는 wpf에서 비트 맵으로 사각형을 변환하려고합니다. 여기 내가 무엇을했는지 의미합니다. 먼저 사각형을 캔버스에 추가 한 다음 비트 맵으로 변환합니다. 여기에 form_load 아래에 직사각형을 추가하고이를 비트 맵으로 변환하는 코드를 작성했습니다.이 코드는 buttonclick 아래에 작성되었습니다. 그런 다음 비트 맵을 완벽하게 생성합니다.wpf에서 사각형을 비트 맵으로 변환하는 방법

의 Form_Load ....

Canvas can = new Canvas(); 
can.ClipToBounds=true; 

Rectangle rect = new Rectangle(); 
rect.Height = 200; 
rect.Width = 50; 
can.Height = 200; 
can.Width = 50; 
rect.Fill = color................. 
can.Children.add(rect); 

button_click 완벽하게 작동 코드 위

TargetBitmapRenderer bit = new TargetBitmapRenderer((int)can.ActualWidth,(int)Can.ActualHeight, 96, 96, PixelFormats.Pbgra32); 
...... 
..... 

... 그러나 formload 이벤트 버튼 CLIK 아래의 코드를 작성하는 경우, 실제 폭과 실제 캔버스의 높이가 0이기 때문에 오류가 발생합니다 ....

대신 비트 맵을 동적으로 생성하고 싶습니다. e 블록 코드 ... 그런 다음이 방법을 제안 해주세요. 감사합니다 ...

+0

IDE에서이 코드를 복사하여 붙여 넣지 않았다는 느낌이 들었습니다. 확실히 컴파일되지 않는 몇 가지 맞춤법 오류가 있습니다. 관련없는 문제로 시간을 낭비하지 않도록 실제 코드를 보여주십시오. –

답변

0

캔버스에 사각형을 추가했지만 캔버스가 제대로 측정하고 렌더링 할 기회가 없습니다. 그 자체로. 따라서 Measure를 명시 적으로 호출하여 캔버스에 정렬하고자 할 수 있습니다. XAML에있는 경우 기본 시각적 트리의 일부로 인해 측정 및 정렬이 자동으로 호출되고 결과가 표시됩니다.

can.children.add(rect); 
can.Measure(new Size(200,50)); 
can.Arrange(new Rect(0, 0, 200, 50)); 
관련 문제