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

  • Glyn Dewis

    Glyn Dewis

    25 AĞUSTOS 2007
  • Showtime

    Showtime

    21 HAZİRAN 2006
  • Tome Rodrigo

    Tome Rodrigo

    9 Temmuz 2006