0

codeplex here で入手可能な WPF (MUI) 用の ModernUI を使用しています。これは優れたフレームワークであり、ページのコンテナーとして使用しても問題はありません。

現在、カスタム モーダル ダイアログを追加しようとしていますが、単純なウィンドウとして宣言すると、MUI の優れたスタイルが保持されません。ソースコードを理解しようとしてきましたが、そのようなウィンドウを作成する方法がわかりません。

このフレームワークでカスタム モーダル ダイアログを実現する方法について、いくつかのガイドラインを教えてください。

編集:これは、XAMlMAX の助けを借りて見つけたソリューションです。

<mui:ModernWindow
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:lex="http://wpflocalizeextension.codeplex.com" 
xmlns:SysClient="clr-namespace:SysClient" 
xmlns:System="clr-namespace:System;assembly=mscorlib" 
x:Class="SysClient.Pages.GenericWindow" 
xmlns:mui="http://firstfloorsoftware.com/ModernUI"    
mc:Ignorable="d" Width="800" Height="520" Activated="Window_Activated" Margin="0,0,0,0">
<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/FirstFloor.ModernUI;component/Themes/ModernWindowPopUp.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>
<Window.Style>
    <StaticResource ResourceKey="ModernWindowPopUp"></StaticResource>
</Window.Style>

そして、これが私がそれを使用する方法です:

  GenericWindow w = new GenericWindow()
  {
      Title = "Add Order",
      ShowInTaskbar = false,               // don't show the dialog on the taskbar
      //Topmost = true,                    // ensure we're Always On Top
      ResizeMode = ResizeMode.NoResize,    // remove excess caption bar buttons
      Owner = Application.Current.MainWindow,
      Tag = new ParametersClass(OrderTypeId),
      ContentSource = new Uri("/Windows/AddOrderWindow.xaml", UriKind.Relative)
  };
  w.ShowDialog();
4

1 に答える 1

2

多分私は答えを提供するのに十分知っています: レイアウトのマークアップのソース コードへのリンクは次のとおりです: ボタン テンプレートこれにより、アプリケーションがどのように外観を実現するかについての基本的な理解が得られます。辞書をダウンロードしたら、モーダル ウィンドウに適用するだけです。そして、それはあなたが望む結果を得るのに十分なはずです:-)

問題があればお知らせください

于 2014-03-17T14:54:24.033 に答える