ContentControl에서 파생 된 새 사용자 지정 컨트롤을 만들려고합니다. (이 컨트롤은 윈도우의 다른 컨트롤에 대한 컨테이너입니다.) 버튼을 닫으려고합니다. (사실 경계없는 창을 원하지만 시스템과 유사한 버튼을 사용하면 창을 닫을 수 있습니다).Button.Click 사용자 지정 컨트롤
두 행이있는 Grid가 포함 된 컨트롤의 스타일을 만들었습니다. 상단 행에 단일 버튼이있는 StackPanel이 있습니다.
단추의 Click 이벤트를 컨트롤 자체에 바인딩하거나, 이벤트를 발생 시키거나, 부모 창에 닫기 명령을 보낼 수 있습니까?
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="20" />
<RowDefinition />
</Grid.RowDefinitions>
<Border Background="Azure" Grid.Row="0">
<StackPanel Orientation="Horizontal">
<Button HorizontalAlignment="Right" Content="X" Click="Close_Click" />
</StackPanel>
</Border>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="1"/>
</Grid>
그리고 뒤에있는 코드 :
static STContentControl()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(STContentControl), new FrameworkPropertyMetadata(typeof(STContentControl)));
}
public void Close_Click(object sender, RoutedEventArgs ea)
{
}
원하는 항목을 잘 모름 - 버튼을 클릭 할 때 발생하는 제어 이벤트에 대한 클릭 이벤트를 생성했는지, 어떤 부모 창에 대해 이야기하고 있는지, 클릭을 바인딩한다는 것은 무엇을 의미합니까? 자신에게? 왜 클릭 자체를 바인딩하고 싶습니까? 이미 클릭 핸들러가 있습니까? 컨트롤의 레이아웃과 버튼을 클릭했을 때 발생할 것으로 예상되는 것을 설명 할 수 있습니까? – Charleh
이 컨트롤이 포함 된 창을 닫는 버튼이 포함 된 콘텐트 컨트롤이 필요합니다. 코드 부분은 필자가 작성한 컨트롤의 일부입니다. 이 빌드를 시도 할 때 Click 이벤트를 사용할 수 없다거나 또는 컨트롤의 기본 템플릿이 들어있는 ResourceDictionary 머리글에 x : Class 특성을 사용해야한다는 오류가 발생합니다. 머리글에 넣은 후 Close_Click 클래스에서 찾을 수 없습니다. –