2017-08-28 100 views
0

私はWPFで新しくDevExpressコントロールをいくつか使用しました Imはいくつかのボタンにスタイルを実装しようとしていますが、リソースを解決できないというエラーを常に示しています。メインウィンドウリソース "x"を解決できませんでしたWPF

<dx:DXWindow 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"   
    xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars" 
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" x:Class="LicenceManagerWPF.MainWindow" 
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" dx:ThemeManager.ThemeName="Office2016" 
    Title="MainWindow" Height="746.218" Width="1139.154" 
    WindowStartupLocation="CenterScreen"> 
<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="80"/> 
    </Grid.RowDefinitions> 
    <StackPanel x:Name="Stack_Top" Orientation="Horizontal" Grid.Row="1" > 
     <dx:SimpleButton x:Name="btnRefresh" Style="{StaticResource ResourceKey=CustomStyles}" Width="55" ToolTip="Refresh" Margin="10,10,10,10" Glyph="{dx:DXImage Image=Refresh_32x32.png}" Content="Resfresh" /> 
     <dx:SimpleButton x:Name="btndNew" Width="55" ToolTip="New Customer" Margin="10" Glyph="{dx:DXImage Image=NewContact_32x32.png}" Content="New Customer" /> 
     <dx:SimpleButton x:Name="btnDelete" ToolTip="Delete Customer" Width="55" Margin="10" Content="Delete" Glyph="{dx:DXImage Image=Cancel_32x32.png}"/> 
    </StackPanel> 

</Grid> 

これはApp.xaml

<Application x:Class="LicenceManagerWPF.App" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     StartupUri="MainWindow.xaml" 
     Startup="OnAppStartup_UpdateThemeName"> 
<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary x:Name="CustomStyles" Source="StyleResource.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

ですが、これは私のスタイルがファイルである

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
       xmlns:local="clr-namespace:LicenceManagerWPF" 
       xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars" 
       xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" x:Class="LicenceManagerWPF.MainWindow"  
       xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"> 
<Style x:Name="HeaderButtons" TargetType="dx:SimpleButton"> 
    <Setter Property="Margin" Value="10"/> 
    <Setter Property="Width" Value="55"/> 
</Style> 

私は検索していて、すべてがうまく見えますが、解決できない理由はありません。 よろしく

答えて

2

ありのResourceDictionaryに名前を付ける必要がなく、単にそのソース提供:

<ResourceDictionary Source="StyleResource.xaml"/> 

のResourceDictionaryの項目をx:Keyを持っている必要があります。スタイルの場合、明示的なキーがない場合、TargetTypeがキーとして使用されます。これはデフォルトのスタイルを作成する方法です。名前ではない、リソースキーによって、最終的StaticResource拡張参照リソースをキー

<Style x:Key="HeaderButtons" TargetType="dx:SimpleButton"> 
    <Setter Property="Margin" Value="10"/> 
    <Setter Property="Width" Value="55"/> 
</Style> 

そして:あなたが指定したスタイルをしたい場合は

、その後、セットX

Style="{StaticResource HeaderButtons}" 

をも:あなたはスタイルを設定するとボタンの場合、余白と幅の設定(Width="55" Margin="10,10,10,10")が冗長になります。スタイル設定を上書きするために使うことができますが、この場合は同じですから、なぜそれらを書きますか?

+0

ありがとうございました。私のエラーを理解する助けになります。 次のプロジェクトで使用するスタイルをいくつか作成したいと思います。 私はちょうどWPFのagains Windowsフォームの機能を示すために小さなprokectを作成したいデザインでは本当に良いです。 よろしく –

関連する問題