프로그래밍 방식으로 타원 셰이프를 만들었지 만 위치를 지정하는 속성을 찾을 수 없습니다. Lines
에는 X1, Y1, X2, Y2가 있지만 타원 모양에는 가운데, 위치, X, Y 등이 없습니다. 어떻게해야합니까?WPF에서 캔버스에 타원 셰이프의 위치를 지정하는 방법은 무엇입니까?
답변
퍼팅 모양 그래서 캔버스 패널 (@ phoog의 응답 참조). 그러나 Grid 나 다른 패널에 배치하는 경우 Margin 속성을 수정하여 원하는 곳에 배치 할 수 있습니다. 대신 타원의 왼쪽 상단 모서리의 중심점을 지정하여 그렇게하고 싶었다면
, 당신이 할 수 있습니다 :
Ellipse CreateEllipse(double width, double height, double desiredCenterX, double desiredCenterY)
{
Ellipse ellipse = new Ellipse { Width = width, Height = height };
double left = desiredCenterX - (width/2);
double top = desiredCenterY - (height/ 2);
ellipse.Margin = new Thickness(left, top, 0, 0);
return ellipse;
}
나는 이것이 당신이 원하는 정확하게한다는 것을 확인하지 않은 컴파일러,하지만 잘하면 당신은 아이디어를 얻을.
Canvas.SetLeft(ellipse, desiredCenterX - (width/2))
Canvas.SetTop(ellipse, desiredCenterY - (height/2))
Canvas.Left 및 Canvas.Top. 그것은 C# 코드에서 http://msdn.microsoft.com/en-us/library/ms751563.aspx
"어떻게 타원 또는 원을 그리려면"에 문서의 모든있어, 구문이 될 것이다 : 아마 수행해야 화면에 임의의 장소에서
감사합니다. 코드에서 시도했지만 작동하지 않습니다. 저는 이것을했습니다 :'ellipse.Canvas.Left'.'Ellipse' 객체에는'Canvas' 속성이 없습니다. –
나는 내 대답을 편집하여 C# 구문을 보여 주었다. Canvas.Left 속성 (및 .Top, .Bottom, .Right)은 연결된 속성입니다. 개요는 http://msdn.microsoft.com/en-us/library/ms749011.aspx – phoog
을 당신은뿐만 아니라 시작과 끝 지점이있는 경우 : 다시 캔버스를 사용하여 비 캔버스 패널의 안쪽 여백을 사용을 통해 선호하는 방법,하지만 왼쪽 계산 상단이 여전히 적용됩니다 같은 원칙이 될 것입니다 반지름과 부울 값으로 시계 방향인지 아닌지에 대한 내 함수를 사용하십시오 :)
function ellipse(x1, y1, x2, y2, radius, clockwise) {
var cBx = (x1 + x2)/2; //get point between xy1 and xy2
var cBy = (y1 + y2)/2;
var aB = Math.atan2(y1 - y2, x1 - x2); //get angle to bulge point in radians
if (clockwise) { aB += (90 * (Math.PI/180)); }
else { aB -= (90 * (Math.PI/180)); }
var op_side = Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2))/2;
var adj_side = Math.sqrt(Math.pow(radius, 2) - Math.pow(op_side, 2));
if (isNaN(adj_side)) {
adj_side = Math.sqrt(Math.pow(op_side, 2) - Math.pow(radius, 2));
}
var Cx = cBx + (adj_side * Math.cos(aB));
var Cy = cBy + (adj_side * Math.sin(aB));
var startA = Math.atan2(y1 - Cy, x1 - Cx); //get start/end angles in radians
var endA = Math.atan2(y2 - Cy, x2 - Cx);
var mid = (startA + endA)/2;
var Mx = Cx + (radius * Math.cos(mid));
var My = Cy + (radius * Math.sin(mid));
context.arc(Cx, Cy, radius, startA, endA, clockwise);
}
- 1. WPF에서 datacontext를 지정하는 방법은 무엇입니까?
- 2. ListView의 위치를 지정하는 방법은 무엇입니까?
- 3. 사용자가 클릭 한 WPF 타원 셰이프의 부분을 알 수있는 방법은 무엇입니까?
- 4. googlemap에서 항목의 위치를 실제로 지정하는 방법은 무엇입니까?
- 5. DOM 요소가 허용되는 위치를 지정하는 방법은 무엇입니까?
- 6. graphviz에서 모서리 위치를 강제로 지정하는 방법은 무엇입니까?
- 7. 양식을 표시하기 전에 위치를 지정하는 방법은 무엇입니까?
- 8. xsd 파일에서 스키마 위치를 지정하는 방법은 무엇입니까?
- 9. WPF에서 왼쪽 및 오른쪽의 사각형 스트로크 만 지정하는 방법은 무엇입니까?
- 10. WPF에서 템플릿을 사용할 때 버튼에 명령을 지정하는 방법은 무엇입니까?
- 11. WPF에서 다른 프로젝트의 파일 경로를 지정하는 방법은 무엇입니까?
- 12. 캔버스에 JPanel을 그리는 방법은 무엇입니까?
- 13. 창 구성 요소의 위치를 지정하는 위치는 무엇입니까?
- 14. JavaEE 프로젝트의 경로를 지정하는 방법 또는 위치를 찾는 방법은 무엇입니까?
- 15. pyCairo : 이미지의 크기를 조정하고 위치를 지정하는 방법은 무엇입니까?
- 16. 크기와 위치를 나타내는 구조체의 이름을 지정하는 방법은 무엇입니까?
- 17. VS 2010에서 단위 테스트 결과의 위치를 지정하는 방법은 무엇입니까?
- 18. 프로그래밍 방식으로 Eclipse에서 JRE javadoc 위치를 지정하는 방법은 무엇입니까?
- 19. 내 UIScrollView 및 텍스트 필드의 위치를 지정하는 방법은 무엇입니까?
- 20. Silverlight - MVVM을 사용하여 동적으로 캔버스에 타원을 추가하십시오.
- 21. WPF에서 캔버스의 도형을 이동하는 방법은 무엇입니까?
- 22. J2ME에서 캔버스에 단추를 만드는 방법은 무엇입니까?
- 23. 캔버스에 그려지는 이미지를 회전하는 방법은 무엇입니까?
- 24. WPF에서 ScrollBar의 드래그 썸을 비활성화하는 방법은 무엇입니까?
- 25. WPF에서 외부 응용 프로그램을 호스팅하는 방법은 무엇입니까?
- 26. wpf에서 ContextMenu의 하위 메뉴의 스타일을 지정하는 방법
- 27. b2shape 타원?
- 28. 경계 타원
- 29. UITextField 타원
- 30. 터치로 타원?
왼쪽 속성이없는 이유는 무엇입니까? WPF는 너무 이상합니다. – Kamil
@Kamil이 경우의 위치 지정은 타원 자체가 아닌 contanier의 속성입니다. 캔버스에서'Canvas.Left' 속성을 설정합니다. 이상하게도 ... – heltonbiker
@heltonbiker 나는 이런 식으로 설계된 이유가 있다고 생각하지만, 나는 그 이유를 아직 발견하지 못했다. – Kamil