Canvas 컨트롤의 자식으로 Image 컨트롤이 있습니다. 비트 맵으로 Image 컨트롤을로드하고 Stretch 속성을 Uniform으로 설정하면 중심 이미지가 생깁니다. 그러나 이미지의 위치를 설정하거나 검색 할 방법이 없습니다. 누구에게나 해결책이 있습니까? 여기 Silverlight 캔버스 컨트롤에서 이미지의 위치를 얻거나 설정하는 방법
쉽게 문제를 조금 이해하게하는 몇 가지 코드입니다 :Image img = new Image();
img.Height = maxSize.Height;
img.Width = maxSize.Width;
img.Stretch = Stretch.Uniform;
img.Source = bmp;
myCanvas.Children.Add(img);
// returns 0:
MessageBox.Show(((Image)myCanvas.Children[0]).GetValue(Canvas.LeftProperty).ToString());
MessageBox.Show(((Image)myCanvas.Children[0]).GetValue(Canvas.TopProperty).ToString());
// in order to set explicitly set the values I have to know what they are?
Double left = {the current left value};
Double top = {the current top value};
((Image)myCanvas.Children[0]).SetValue(Canvas.LeftProperty, left);
((Image)myCanvas.Children[0]).SetValue(Canvas.TopProperty, top);`
내가 코드를 선택하고 {} 버튼을 누르면,하지만 나를 위해 작동하지 않습니다, 둘 다 코드를 입력 않습니다 수동 틱.
를 사용합니다. 왼쪽/맨 위 값을 읽은 다음 변경하지 않고 다시 쓰고 있습니다. 당신은 또한 그들이 왜 0인지 혼란 스럽습니다. 내가 추측 할 수있는 가장 좋은 점은 당신이 이미지 * 컨트롤 *의 위치를 이미지 컨트롤의 내부 *의 명백한 위치와 혼동하고 있다는 것입니다. 컨트롤 안의 * picture *의 왼쪽/위쪽 위치는 (ImageControlDimension - ScaledPictureSize)/2에 의해 결정됩니다. 왼쪽/위쪽 속성을 사용하여 수행 할 작업을 설명하는 경우 해당 속성을 가져 오는 방법을 알려줄 수 있습니다 정말 필요한. – David
이미지 컨트롤 안에있는 내 그림의 실제 위치를 알아야합니다. Google을 통해 ImageControlDimension 및 ScaledPictureSize에 대한 참조를 찾을 수 없습니다. 내가 능숙하게하려고하는 것은 단지 이미지의 일부분 위에 직사각형을 그리고 그 이미지의 일부분을 추출하는 것입니다. 이미지 (또는 이미지 컨트롤의 그림)가 맨 위에 0,0 인 경우이 작업을 매우 쉽게 수행 할 수 있지만, 그렇지 않은 경우에는 내가 무엇인지 알 필요가 있습니다. 나는 이것을 발견하는 것이 그렇게 어렵다고 믿을 수 없다. – descf
4 년 된 질문에 부딪히지 않아서 죄송합니다. 그러나이 문제에 대한 해결책을 찾으셨습니까? 나는 거의 똑같은 문제에 직면하고있어 아무것도 찾을 수 없다. – Ali250