이제 WPF로 바꾸어보세요 (6)
5351 단어 VisualStudioVisualBasicC#WPF
Canvas를 이용한 아날로그 시계 그리기
VB 버전에서는 미니 아날로그 시계를 NotifyIcon에 넣거나 시보 양식에 표시하는 데
GDI를 사용하여 그리기를했습니다. 우선 아무것도 생각하지 않고 Line이나 Ellipse로 그려 테스트 화면에 내려 보면, 이런 느낌.
음 - 벡터 이미지는 여전히 아름답습니다.
DropShadow도 설정할 수있어 훌륭합니다.
canvasへの描画部分
//Drop Shadow効果設定
var DSE = new DropShadowEffect();
DSE.BlurRadius = aCanvas.Height / 50;
DSE.Direction = 270;
DSE.Opacity = 0.2;
DSE.ShadowDepth = aCanvas.Height / 20;
・・・中略
//時針描画
Line hhLine = new Line();
hhLine.Stroke = Brushes.White;
hhLine.StrokeThickness = aCanvas.Width / 20;
if (hhLine.StrokeThickness < 1)
{
hhLine.StrokeThickness = 1;
}
hhLine.X1 = aCanvas.Width / 2;
hhLine.Y1 = aCanvas.Height / 2;
hhLine.X2 = hhHandEdPt.X;
hhLine.Y2 = hhHandEdPt.Y;
hhLine.StrokeStartLineCap = PenLineCap.Round;
hhLine.StrokeEndLineCap = PenLineCap.Round;
hhLine.Effect = DSE;
・・・中略
aCanvas.Children.Add(hhLine);
화면 전환 테스트
동기 유지를 위해 이전 테스트 앱을 가공하고 왼쪽 상단의 작은 아이콘 (16 × 16 정도)에 현재 아날로그 시계 이미지를 설정하고 그것을 클릭하면 프로세스 아이콘적인 크기로 양식의 크기를 변경 하면서 작은 아이콘을 전면으로 한다는 움직임을 설정해 보았습니다.
이런 느낌.
클럭을 쓴 Canvas를 scaletransform+애니메이션시켜, 동시에 Window의 사이즈를 둘레 변경하고 있습니다만, 당연히 싱크로도 하지 않고, 무엇보다 느린. 너무 좋다.
Width와 height의 변경이 번갈아 이루어지고 있는 것이 눈으로 쫓는 레벨.
동기 부여가 반대로 떨어지는 결과가 되었습니다.
Reference
이 문제에 관하여(이제 WPF로 바꾸어보세요 (6)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Insetrect/items/df8178ab41189ea5f9b1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
canvasへの描画部分
//Drop Shadow効果設定
var DSE = new DropShadowEffect();
DSE.BlurRadius = aCanvas.Height / 50;
DSE.Direction = 270;
DSE.Opacity = 0.2;
DSE.ShadowDepth = aCanvas.Height / 20;
・・・中略
//時針描画
Line hhLine = new Line();
hhLine.Stroke = Brushes.White;
hhLine.StrokeThickness = aCanvas.Width / 20;
if (hhLine.StrokeThickness < 1)
{
hhLine.StrokeThickness = 1;
}
hhLine.X1 = aCanvas.Width / 2;
hhLine.Y1 = aCanvas.Height / 2;
hhLine.X2 = hhHandEdPt.X;
hhLine.Y2 = hhHandEdPt.Y;
hhLine.StrokeStartLineCap = PenLineCap.Round;
hhLine.StrokeEndLineCap = PenLineCap.Round;
hhLine.Effect = DSE;
・・・中略
aCanvas.Children.Add(hhLine);
동기 유지를 위해 이전 테스트 앱을 가공하고 왼쪽 상단의 작은 아이콘 (16 × 16 정도)에 현재 아날로그 시계 이미지를 설정하고 그것을 클릭하면 프로세스 아이콘적인 크기로 양식의 크기를 변경 하면서 작은 아이콘을 전면으로 한다는 움직임을 설정해 보았습니다.
이런 느낌.
클럭을 쓴 Canvas를 scaletransform+애니메이션시켜, 동시에 Window의 사이즈를 둘레 변경하고 있습니다만, 당연히 싱크로도 하지 않고, 무엇보다 느린. 너무 좋다.
Width와 height의 변경이 번갈아 이루어지고 있는 것이 눈으로 쫓는 레벨.
동기 부여가 반대로 떨어지는 결과가 되었습니다.
Reference
이 문제에 관하여(이제 WPF로 바꾸어보세요 (6)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Insetrect/items/df8178ab41189ea5f9b1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)