내가 원하는 것은 캔버스 백 그라운드 안에 이벤트 핸들러를 추가하는 것입니다. 마우스 드래그를 사용하여 모든 하위 요소를 다른 창 위치로 이동할 수있었습니다. 하지만 각 제어 통해 반복 시작될 때 루프의 foreach 에서는, 예외 발생 :소스 정보가 디버그 정보에서 누락되었습니다.
XamlParseException는 "AgentWindow.xaml" 유형의 생성자의 호출 발생 일치 지정된 바인딩 제약 조건이 예외를 던졌습니다. 행 번호 '3'및 행 위치 '9'.
public AgentWindow() { InitializeComponent(); foreach (Control control in canvasBackground.Children) { control.PreviewMouseLeftButtonDown += this.MouseLeftButtonDown; control.PreviewMouseMove += this.MouseMove; control.PreviewMouseLeftButtonUp += this.PreviewMouseLeftButtonUp; } }
AgentWindow.xaml :
<Canvas x:Name="canvasBackground"> <Canvas Background="Black" Canvas.Right="10" Canvas.Top="10" Height="200" Width="153"> <Button x:Name="btnF1" Content="f1" Height="56" Width="60" Margin="10,12,79,132" Background="#DDD"></Button> <Button x:Name="btnF2" Content="f2" Height="56" Width="60" Margin="80,12,9,132" Background="#DDD"/> <Button x:Name="btnF3" Content="f3" Height="56" Width="60" Margin="10,73,79,71" Background="#DDD"></Button> <Button x:Name="btnF4" Content="f4" Height="56" Width="60" Margin="80,73,9,71" Background="#DDD"></Button> <Button x:Name="btnF5" Content="f5" Height="56" Width="60" Margin="10,134,79,10" Background="#DDD"></Button> <Button x:Name="btnF6" Content="f6" Height="56" Width="60" Margin="80,134,9,10" Background="#DDD"></Button> </Canvas> <Button x:Name="btnSomeButton" Content="someb" Height="56" Width="60" Background="#FFFBFBFB" Canvas.Left="292" Canvas.Top="193"/> </Canvas>
모든
소스 정보는이 모듈에 대한 디버그 정보에서
AgentWindow.xaml.cs 누락 이건 내가 바뀌면 시작 됐어. 캔버스에 그룹 박스. 내가 GroupBox 내에서 버튼에 액세스하는 방법을 알아낼 수 없었기 때문에 그렇게했습니다 ... 저는 wpf에 익숙합니다. :)
아 .. 너무 쉬웠습니다. 정말 고마워요! ;) – Edgar