다음 코드를 사용하면 btn2는 btn1과 btn3과 다르게 보이지만 정확히 동일한 이미지를 사용합니다.WPF 단추를 상속하면 도구 모음에서 이미지의 모양이 바뀝니다.
Public Class MyToolBar
Inherits ToolBar
Public Sub New()
MyBase.New()
Dim bmp1 = New BitmapImage(ImageUri.DeleteItem)
Dim bmp2 = New BitmapImage(ImageUri.DeleteItem)
Dim bmp3 = New BitmapImage(ImageUri.DeleteItem)
Dim img1 = New Image With {.Source = bmp1}
Dim img2 = New Image With {.Source = bmp2}
Dim img3 = New Image With {.Source = bmp3}
Dim btn1 = New Button With {.Content = img1}
Dim btn2 = New MyButton With {.Content = img2}
Dim btn3 = New Button With {.Content = img3}
Me.AddChild(btn1)
Me.AddChild(btn2)
Me.AddChild(btn3)
End Sub
End Class
Public Class MyButton
Inherits Button
End Class
코드의 유일한 차이점은 btn2가 MyButton으로 구성된다는 것입니다. MyButton은 Button의 단순 상속이며 다른 코드는 없습니다.
btn1 & btn3이 예상대로 나타납니다. 플랫. btn2는 반정 도형으로 나타나며 검은 색 테두리가 있습니다.
단추를 도구 모음에 추가하는 순서는 아무런 차이가 없습니다. 즉, btn2의 이상한 모양이 툴바에 추가 된 위치로 이동합니다.
I 덤프와 비교 속성을, 2 단계로, 인 btn1과 btn2의과를 제외하고 유일한 예상되는 차이가있다했습니다
btn1.DependencyObjectType.IsSecurityCritical = 거짓 btn2.DependencyObjectType.IsSecurityCritical = TRUE가
및
btn1.DependencyObjectType.IsSecurityTransparent = 진정한 btn2.DependencyObjectType.IsSecurityTransparent = 거짓
내가 조사해야 할 것은 무엇입니까?
거기에 있습니다. 이 스타일은 http://wpfthemes.codeplex.com/을 사용하는 옵션이며, btn1과 btn3이 적절히 변경되지만 btn2는 동일하게 적용됩니다. 따라서 표준 WPF에서 코드의 힌트가없는 btn1 및 btn3에 대한 단추의 스타일을 추측하고 있습니다. 쓰레기. 배울 WPF의 또 다른 기능! –
도움을 주셔서 대단히 감사드립니다. 스타일은 버튼에 맞지만 버튼은 툴바의 일부이므로 올바른 스타일은