SORU
26 AĞUSTOS 2009, ÇARŞAMBA


Nasıl WPF kullanıcı denetimi ithal ve yerli kaynakları birleştirmek için

Ortak ve bireysel kaynaklar, ikimizin de ihtiyacı olan WPF kullanıcı denetimleri birkaç yazıyorum.

Ayrı bir kaynak dosyası yükleme kaynaklarını sözdizimi anladım:

<UserControl.Resources>
    <ResourceDictionary Source="ViewResources.xaml" />
</UserControl.Resources>

Bunu yaparken, ancak, aynı zamanda kaynakları, gibi yerel olarak Ekle edemem:

<UserControl.Resources>
    <ResourceDictionary Source="ViewResources.xaml" />
    <!-- Doesn't work: -->
    <ControlTemplate x:Key="validationTemplate">
        ...
    </ControlTemplate>
    <style x:key="textBoxWithError" TargetType="{x:Type TextBox}">
        ...
    </style>
    ...
</UserControl.Resources>

ResourceDictionary bir göz geçirdim.MergedDictionaries, ama bu sadece beni daha fazla dış sözlük birleştirme, daha fazla kaynakları yerel olarak tanımlamak sağlar.

Önemsiz bir şey eksik olmalı?

Belirtilmelidir: Win bir projede benim kullanıcı denetimleri, Uygulama paylaşılan kaynaklar koyarak ev sahipliği yapıyorum.xaml gerçekten bir seçenek değil.

CEVAP
26 AĞUSTOS 2009, ÇARŞAMBA


Anladım. Çözüm MergedDictionaries içerir, ancak ayrıntılarda doğru, böyle olmalı:

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="ViewResources.xaml" />
        </ResourceDictionary.MergedDictionaries>
        <!-- This works: -->
        <ControlTemplate x:Key="validationTemplate">
            ...
        </ControlTemplate>
        <style x:key="textBoxWithError" TargetType="{x:Type TextBox}">
            ...
        </style>
        ...
    </ResourceDictionary>
</UserControl.Resources>

Bu, yerel kaynakları iç içe olması gerekiriçindeResourceDictionary etiketi. Örnek here yanlıştır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AyfionGaming

    AyfionGaming

    20 ŞUBAT 2013
  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • Visual Life

    Visual Life

    3 Temmuz 2006