WPF 사용자 지정 컨트롤은 기본 스타일의 ToggleButton을 사용하지 않습니다.

juFo

ToggleButton을 기반으로하는 사용자 지정 컨트롤을 만들고 있습니다. Generic.xaml의이 간단한 스타일을 사용하면 사용자 지정 컨트롤에서 작동하는 기본 토글 버튼 스타일을 가져올 수 없습니다.

전경, 배경 및 테두리 브러시를 시스템 색상으로 설정하고 있지만 아무 일도 일어나지 않습니다.

  <Style TargetType="{x:Type local:PopupButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
    <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
    <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
    <Setter Property="BorderBrush" Value="{DynamicResource {x:Static SystemColors.ActiveBorderBrushKey}}" />
    <Setter Property="HorizontalAlignment" Value="Center" />
    <Setter Property="VerticalAlignment" Value="Center" />
    <Setter Property="MinHeight" Value="22" />
    <Setter Property="MinWidth" Value="75" />
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type local:PopupButton}">
          <Grid SnapsToDevicePixels="True">
            <Grid.ColumnDefinitions>
              <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>

            <ToggleButton Grid.Column="0">
              <ToggleButton.Template>
                <ControlTemplate TargetType="{x:Type ToggleButton}">
                  <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" 
                                    HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
                                    RecognizesAccessKey="True" />
                </ControlTemplate>
              </ToggleButton.Template>
              <ContentPresenter Content="{TemplateBinding Content}"
                                ContentTemplate="{TemplateBinding ContentTemplate}"
                                VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                Margin="{TemplateBinding Margin}"
                                RecognizesAccessKey="true" />
            </ToggleButton>
          </Grid>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>

defaultstylekey를 재정의했습니다.

public class PopupButton : ToggleButton
  {
    static PopupButton()
    {
      DefaultStyleKeyProperty.OverrideMetadata(typeof(PopupButton), new FrameworkPropertyMetadata(typeof(PopupButton)));
    }
// ...

테스트하고 다른 (xaml) 코드를 가지고 놀았지만 몇 시간 후에도 기본 스타일이 적용되지 않는 이유를 아직 파악하지 못했습니다.

R.Rusev

local : PopupButton에 대한 ControlTemplate에는 토글 단추가 있지만 해당 템플릿도 덮어 씁니다. 제거해보십시오.

<ToggleButton.Template>
    <ControlTemplate TargetType="{x:Type ToggleButton}">
        <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" 
                                HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
                                RecognizesAccessKey="True" />
    </ControlTemplate>
</ToggleButton.Template>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

스타일을 사용하지 않고 사용자 지정 컨트롤의 기본 컨트롤 템플릿 설정

분류에서Dev

내 XAML의 다른 사용자 지정 컨트롤 기본 클래스를 사용하여 WPF가 내 뷰에서 사용자 지정 컨트롤을 인스턴스화하도록하려면 어떻게해야합니까?

분류에서Dev

상속 된 WPF 사용자 지정 컨트롤은 부모 명령을 상속하지 않습니다.

분류에서Dev

생성자를 사용하지 않고 WPF의 사용자 정의 컨트롤간에 이벤트 만들기

분류에서Dev

Visual Studio 2019 WPF 디자이너가 사용자 지정 컨트롤을 표시하지 않습니다.

분류에서Dev

미리 정의 된 가시성, 컨트롤 이름, 기본값으로 Orbeon 사용자 지정 컨트롤 XBL을 만드는 방법은 무엇입니까?

분류에서Dev

WPF 사용자 지정 컨트롤의 INotifyPropertyChanged에서 TemplateBinding이 작동하지 않습니다.

분류에서Dev

WPF 스타일링 사용자 지정 컨트롤

분류에서Dev

사용자 정의 컨트롤이 WPF C #을 닫지 못하도록 방지

분류에서Dev

WPF를 사용하지 않고 Silverlight 5에서 generic.xaml을 사용하여 사용자 지정 컨트롤을 만드는 방법은 무엇입니까?

분류에서Dev

기본 창에서 사용자 지정 컨트롤의 속성을 설정하는 방법은 무엇입니까?

분류에서Dev

WPF 사용자 정의 컨트롤이 삭제되지 않음

분류에서Dev

WPF : 단추 배경색을 변경 한 후 사용자 지정 스타일이 작동하지 않습니다.

분류에서Dev

루트 사용자의 기본 셸을 POSIX가 아닌 셸로 설정하지 않는 것이 좋습니다.

분류에서Dev

WPF : 사용자 지정 컨트롤에 텍스트를 표시하는 방법은 무엇입니까?

분류에서Dev

WPF에서 부모 사용자 정의 컨트롤의 왼쪽에 자식 사용자 정의 컨트롤을 배치하고 싶습니다.

분류에서Dev

WPF의 탭 컨트롤에 사용자 지정 셰이프를 제공하는 방법은 무엇입니까?

분류에서Dev

사용자 지정 컨트롤 바인딩은 모델을 업데이트하지 않습니다.

분류에서Dev

사용자의 기본 셸은 로그인시 소스 파일에 영향을주지 않습니다.

분류에서Dev

사용자 컨트롤을 WPF 사용자 지정 컨트롤로 전송

분류에서Dev

플랫폼 대상에 따라 사용자 지정 컨트롤에서 다른 기본 클래스를 사용하는 방법은 무엇입니까?

분류에서Dev

사용자 지정 컨트롤의 VisualStateGroup이 작동하지 않습니다.

분류에서Dev

F #에서 WPF 사용자 정의 컨트롤을 작성하는 방법은 무엇입니까?

분류에서Dev

사용자 지정 컨트롤의 WPF 확장 툴킷 컨트롤이 양식을 통과하지 못합니까?

분류에서Dev

기본 사용자 지정 스타일 적용시 단추가 보이지 않음-WPF

분류에서Dev

ContentPresenter가 스타일에 사용자 지정 컨트롤을 표시하지 않음

분류에서Dev

사용자 정의 컨트롤 필드가 <select> 옵션을 렌더링하지 않습니다.

분류에서Dev

사용자 정의 사용자 정의 컨트롤의 개별 컨트롤이 퍼지는 것을 방지하고 크기 조정을 허용하는 방법

분류에서Dev

사용자 지정 컨트롤은 창 크기가 조정될 때 크기가 조정되지 않습니다.

Related 관련 기사

  1. 1

    스타일을 사용하지 않고 사용자 지정 컨트롤의 기본 컨트롤 템플릿 설정

  2. 2

    내 XAML의 다른 사용자 지정 컨트롤 기본 클래스를 사용하여 WPF가 내 뷰에서 사용자 지정 컨트롤을 인스턴스화하도록하려면 어떻게해야합니까?

  3. 3

    상속 된 WPF 사용자 지정 컨트롤은 부모 명령을 상속하지 않습니다.

  4. 4

    생성자를 사용하지 않고 WPF의 사용자 정의 컨트롤간에 이벤트 만들기

  5. 5

    Visual Studio 2019 WPF 디자이너가 사용자 지정 컨트롤을 표시하지 않습니다.

  6. 6

    미리 정의 된 가시성, 컨트롤 이름, 기본값으로 Orbeon 사용자 지정 컨트롤 XBL을 만드는 방법은 무엇입니까?

  7. 7

    WPF 사용자 지정 컨트롤의 INotifyPropertyChanged에서 TemplateBinding이 작동하지 않습니다.

  8. 8

    WPF 스타일링 사용자 지정 컨트롤

  9. 9

    사용자 정의 컨트롤이 WPF C #을 닫지 못하도록 방지

  10. 10

    WPF를 사용하지 않고 Silverlight 5에서 generic.xaml을 사용하여 사용자 지정 컨트롤을 만드는 방법은 무엇입니까?

  11. 11

    기본 창에서 사용자 지정 컨트롤의 속성을 설정하는 방법은 무엇입니까?

  12. 12

    WPF 사용자 정의 컨트롤이 삭제되지 않음

  13. 13

    WPF : 단추 배경색을 변경 한 후 사용자 지정 스타일이 작동하지 않습니다.

  14. 14

    루트 사용자의 기본 셸을 POSIX가 아닌 셸로 설정하지 않는 것이 좋습니다.

  15. 15

    WPF : 사용자 지정 컨트롤에 텍스트를 표시하는 방법은 무엇입니까?

  16. 16

    WPF에서 부모 사용자 정의 컨트롤의 왼쪽에 자식 사용자 정의 컨트롤을 배치하고 싶습니다.

  17. 17

    WPF의 탭 컨트롤에 사용자 지정 셰이프를 제공하는 방법은 무엇입니까?

  18. 18

    사용자 지정 컨트롤 바인딩은 모델을 업데이트하지 않습니다.

  19. 19

    사용자의 기본 셸은 로그인시 소스 파일에 영향을주지 않습니다.

  20. 20

    사용자 컨트롤을 WPF 사용자 지정 컨트롤로 전송

  21. 21

    플랫폼 대상에 따라 사용자 지정 컨트롤에서 다른 기본 클래스를 사용하는 방법은 무엇입니까?

  22. 22

    사용자 지정 컨트롤의 VisualStateGroup이 작동하지 않습니다.

  23. 23

    F #에서 WPF 사용자 정의 컨트롤을 작성하는 방법은 무엇입니까?

  24. 24

    사용자 지정 컨트롤의 WPF 확장 툴킷 컨트롤이 양식을 통과하지 못합니까?

  25. 25

    기본 사용자 지정 스타일 적용시 단추가 보이지 않음-WPF

  26. 26

    ContentPresenter가 스타일에 사용자 지정 컨트롤을 표시하지 않음

  27. 27

    사용자 정의 컨트롤 필드가 <select> 옵션을 렌더링하지 않습니다.

  28. 28

    사용자 정의 사용자 정의 컨트롤의 개별 컨트롤이 퍼지는 것을 방지하고 크기 조정을 허용하는 방법

  29. 29

    사용자 지정 컨트롤은 창 크기가 조정될 때 크기가 조정되지 않습니다.

뜨겁다태그

보관