سؤال

أواجه مشكلة في توسيع أحد أنماطي التي حددتها في قاموس Windows. وحده ، يبدو أنه ينطبق على الأسلوب على أدوات التحكم الخاصة بي كما هو متوقع. ومع ذلك ، إذا حاولت تمديد النمط في أحد UserControls الخاص بي ، باستخدام خاصية المستندة إلى ، فإنه يتجاوز ببساطة النوع الرئيسي وجميع الأنماط الأساسية. هذا مثال:

في قاموس الموارد ، المسماة dict1.xaml:

<Style TargetType="{x:Type Button}">
    <Setter Property="Background" Value="Pink"/>
</Style>  

في النافذة الرئيسية. xaml:

<Window.Resources>
    <ResourceDictionary Source="dict1.xaml"/>
</Window.Resources>

في عنصر تحكم المستخدم يسمى UserControl1.xaml:

<UserControl.Resources>
    <Style  BasedOn="{StaticResource {x:Type Button}}" 
            TargetType="{x:Type Button}">
        <Setter Property="FontWeight" Value="Bold"/>
    </Style>
</UserControl.Resources>

يتجاوز النمط في عنصر تحكم المستخدم ببساطة الشخص الموجود في قاموس الموارد والخط جريئًا. إذا قمت بإزالة النمط في عنصر تحكم المستخدم ، فإن النمط الموجود في القاموس يبدأ وتصبح الخلفية وردية. اريد كلاهما.

أي أفكار ما أفعله خطأ هنا؟

شكرًا.

هل كانت مفيدة؟

المحلول

تحتاج إما إلى إضافة القاموس إلى موارد USERCONTROL ، أو إضافته إلى App.xaml Resources.

كما هو الحال ، لا يمكن لـ USERCONTROL حل هذا StaticResSource - إنه في نطاق USERCONTROL ، وليس النافذة ، إذا كان ذلك منطقيًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top