Использование следующего кода btn2 выглядит иначе, чем btn1 и btn3, но они используют одно и то же изображение.
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 перемещается в то место, куда он добавлен на панель инструментов.
Я выгрузил и сравнил свойства двух уровней btn1 и btn2, и есть только ожидаемые различияза исключением:
btn1.DependencyObjectType.IsSecurityCritical = False btn2.DependencyObjectType.IsSecurityCritical = True
и
btn1.DependencyObjectTyTecurity.bject.Security.bjects.jects
Что-нибудь еще, что я должен изучить?