Tôi muốn sử dụng kiểu dáng hộp văn bản Aero, nhưng vẫn ghi đè lên một số thuộc tính. Tôi cố gắng để thực hiện của thành viên này:Ghi đè kiểu dáng mặc định trong Hộp văn bản WPF, dựa trên PresentationFramework.Aero
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style x:Key="{x:Type TextBox}" TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Margin" Value="2" />
<Setter Property="Padding" Value="2" />
</Style>
</ResourceDictionary>
Tuy nhiên, kết quả này trong một StackOverflowException
khi khởi động ứng dụng của tôi. Khi tôi loại bỏ các tham chiếu đến PresentationFramework.Aero, điều này làm việc nhưng tôi nhận được phong cách hệ điều hành mặc định, mà làm cho các ứng dụng xấu xí. ;)
Vì vậy, có hiệu lực: nếu tôi muốn ghi đè một số kiểu trên tất cả các hộp văn bản của mình, tôi không thể có giao diện Aero. Nếu tôi muốn giao diện Aero, tôi không thể ghi đè lên bất kỳ kiểu dáng nào. Deadlock.
Bất kỳ cách nào để giải quyết vấn đề này?
Trong bình luận của bạn để Roberts câu trả lời bên dưới, bạn dường như gợi ý mà bạn đã làm việc này với resourcedictionaries cấp cao nhất. Hãy chia sẻ những gì bạn nghĩ ra. – Oskar