이미지가 있으므로 화면 중앙의 특정 위치에서 이미지가 시작됩니다. 다양한 일이 일어나고이 이미지의 위치를 변경하고 싶지만 변형은 창에 비해 이미지의 이전 위치에 상대적으로 발생합니다. 이 코드가 WPF의 이상한 기능 중 하나 인데요. 내가 이해하지 못하는 이상한 기능이 아닙니다.이미지가 창 대신 원래 위치에 상대적으로 이동합니다.
그럼 이미지를 창에 상대적으로 이동하려면 어떤 방법을 사용해야합니까?
현재 나는이 BTW 작동하지 않습니다 Canvas.SetLeft(this, location.X);
Canvas.SetTop(this, location.Y);
을 시도하고있다. 이미지를 이동하지만 이미지는 창 대신 이미지 이전 위치로 이동합니다.
그리고 내가 옮기려고하는 이미지 코드는 다음과 같습니다.
<UserControl x:Class="UserControls.LetterBlock"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d">
<UserControl.Resources>
<ResourceDictionary Source="../Dictionaries/LetterBlockTypes.xaml" />
</UserControl.Resources>
<Image Name="LB" HorizontalAlignment="Left" VerticalAlignment="Top" Source="{DynamicResource BLB}" Width="50" Height="50"
MouseDown="LetterBlock_MouseDown" MouseMove="LetterBlock_MouseMove" MouseUp="LetterBlock_MouseUp" >
</Image>
</UserControl>
부모님 캔버스가 전체 화면 크기를 차지한다고 선언하지 않았으므로 이는 예상 된 것입니다. 나는 캔버스가 자동으로 사용자 정의 컨트롤의 크기가 주어진 것 같아요. –
'LetterBlock_MouseMove' 또는 해당 이벤트의 전체 이벤트 처리기를 게시 할 수 있습니까? – pushpraj
UserControl 자체에서'Canvas.SetLeft'와'Canvas.SetTop'를 호출하는 것은별로 이해가되지 않습니다 (Canvas에 실제로 포함되어 있지 않다면, 당연히 의지 할 수 없습니다). 아마도 UserControl을 기준으로 Image 컨트롤을 이동하려고합니까? – Clemens