2017-09-03 3 views
13

まず、MahAppsに感謝します。どのようなクールなプロジェクト!MahAppsとProperty Grid

私は、MahAppsライブラリを適用したWPFで書かれた既存のアプリケーションを持っています。プロパティグリッド(エクシード)への影響が最小であるしかし

http://mahapps.com/guides/quick-start.html

:私はこのチュートリアルを使用しました。私の他のウィンドウで

コンボボックスには、次のようになります。

enter image description here

プロパティグリッドのコンボボックスは、まだこのようになります(醜い!):ただしクリック

enter image description here

コンボボックスにアイテム用の正しいMahAppスタイルが表示されます。フラットではないのはコンボボックスそのもの(クローズ)のみです。 WPFの

enter image description here

私の知識は基本的なものです。どこでこれを解決しようとしますか?プロパティグリッドのコンボボックステンプレートを手動でオーバーライドする必要はありますか?

+0

は、あなたは他のプロパティグリッド試みることができる(免責事項を:私はそれを書いた、それは無料&オープンソースです)多分、彼らはあまりにも多くの努力O/W mahappsと統合します。醜いもの –

+0

だから、物事はちょっと主観のですが、迅速な提案はmahappsが(グリッドを含む)ボックスのユーザーエクスペリエンスのうちのいくつかの非常に素晴らしいを作成するために、材料設計と組み合わせることができるということである。http://materialdesigninxaml.net –

答えて

3

MahAppsのリソースが見つからないため、あなたの他のコンボボックスが醜いかもしれません。

使用しているmahappリソースをApp.xamlファイルのリソースディクショナリに配置して、すべてのウィンドウでアクセスできるようにします。 (およびすなわち、一つのウィンドウのみにリソースディクショナリの中に置いていないmainwindow.xaml。)

App.xaml:MainWindow.xaml使用中の

<Application... > 
<Application.Resources> 
    <ResourceDictionary> 
     <!-- My other resources --> 
     <!-- ... --> 

     <!-- MahApps resources --> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.AnimatedSingleRowTabControl.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseDark.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

+0

私はしましたその質問を更新しました。これは私の問題ではありません。コンボボックスが開いているときは、新しい画像に正しいスタイルが表示されます。問題は、コンボボックスが閉じている場合です。コンボボックスは..あなたが定義した – user1035217

+0

はああ、私が見フラットである必要があり、独自の<スタイルのTargetType =「{X:タイプコンボボックス}」>暗黙的MapAppsのスタイルを上書きしますか? – Fredrik

+0

Xceed Enumコンボボックスをオーバーライドしようとしましたが、成功しませんでした。私はそれをしなかった場合は、右 – user1035217

5

Controls:MetroWindow

<Controls:MetroWindow x:Name="MainApp" x:Class="AppWin.MainWindow" 
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
         xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro" 
         MinHeight="700" 
         MinWidth="1024" 
         > 

でMainWindow.xaml.cs継承MetroWindow

namespace AppWin 
{ 
    public partial class MainWindow : MetroWindow 
    { 
    ... 

追加App.xaml以下の設定

<Application x:Class="AppWin.App" 
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
       xmlns:local="clr-namespace:AppWin" 
       StartupUri="MainWindow.xaml"> 
     <Application.Resources> 
      <ResourceDictionary> 
       <ResourceDictionary.MergedDictionaries> 
        <!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! --> 
        <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> 
        <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" /> 
        <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" /> 

/*--change template color for example green.xaml--*/ 
        <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/red.xaml" /> 

/*--change template style for example BaseDark.xaml--*/ 
        <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" /> 

       </ResourceDictionary.MergedDictionaries> 
      </ResourceDictionary> 
     </Application.Resources> 
    </Application> 
+2

これはMahAppsを動作させるための基本的なコードです。私は自分のコードでそれを実装しました。私の問題は、MahAppsが働いていないということではありません。 MahAppsは、プロパティグリッド内でコンボボックスをスタイリングしません。 – user1035217

+0

MahApps.Metroを正しく定義していれば、このプロパティのcomboBoxにこれが表示されます。 https://ibb.co/mZFZ1v –

+1

OPによって記述された問題は、合法的な不具合です。こちら(https://xceed.com/wp-content/documentation/xceed-toolkit-plus-for-wpf/PropertyGrid%20class.html)記載のように、 'DataTemplate'を使用してカスタムエディタを作成するためのレシピを以下依然として同じ問題を呈している。 – jsanalytics

0

プロパティグリッドは、MahAppsのスタイルをオーバーライドします。あなたのプロパティのための独自のPropertyEditorを作成する必要があります。 PropertyEditorはプロパティグリッドのスタイルをオーバーライドします。私が知っている

は多くの仕事のthatsが、その唯一の方法は、MahAppsを見て取得します。 https://github.com/SoftFluent/SoftFluent.Windows: