2016-08-09 6 views
-3

WPFアプリケーションにいくつかのフォームがあります。 App.xamlで私のスタートアップフォームを指定しました。フォームAと言います。WPFの起動イベントが起動フォームに存在しない

    • のようなコンボボックスの選択を発射するアプリケーションが起動し、私の他の形のイベントがチェック
    • チェックボックスは、私が唯一フォームAとドンを開きたいんだ

    を変更変更どういうわけか

    他のフォームのイベントを発射したい。これらの出来事が発射されるのを防ぐ簡単な方法はありますか?

    [OK]を、これは

    <Application x:Class="MMS.UI.App" 
     
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     
          xmlns:sys="clr-namespace:System;assembly=mscorlib" 
     
          xmlns:local="clr-namespace:MMS.UI" 
     
          StartupUri="FormAcilis.xaml"> 
     
        <!--<Application.Resources> 
     
         <ResourceDictionary> 
     
          <ResourceDictionary.MergedDictionaries> 
     
           <ResourceDictionary Source="Themes/Metro/Metro.MSControls.Core.Implicit.xaml" /> 
     
           <ResourceDictionary Source="Themes/Metro/Metro.MSControls.Toolkit.Implicit.xaml" /> 
     
          </ResourceDictionary.MergedDictionaries> 
     
         </ResourceDictionary> 
     
        </Application.Resources>--> 
     
        <Application.Resources> 
     
         <ResourceDictionary> 
     
          <ResourceDictionary.MergedDictionaries> 
     
           <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" /> 
     
           <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" /> 
     
           <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" /> 
     
           <ResourceDictionary Source="/Resources/Icons.xaml" /> 
     
          </ResourceDictionary.MergedDictionaries> 
     
          <local:NullToBooleanConverter x:Key="ntb"/> 
     
          <local:NullToVisibilityConverter x:Key="ntv"/> 
     
          <local:NullToBooleanRevConverter x:Key="ntbr"/> 
     
          <BooleanToVisibilityConverter x:Key="btv" /> 
     
          <local:BooleanToVisibilityRevConverter x:Key="btvr"/> 
     
          <local:GroupsToTotalConverter x:Key="gtt"/> 
     
          <local:GroupsToTotalConverter2 x:Key="gtt2"/> 
     
          <local:DurumToBooleanConverter x:Key="dtb"/> 
     
          <local:DurumToBooleanConverterRev x:Key="dtbr"/> 
     
          <local:DosyalarToPathConverter x:Key="dtp"/> 
     
          <Style x:Key="RightAligned" TargetType="TextBlock"> 
     
           <Setter Property="HorizontalAlignment" Value="Right"/> 
     
          </Style> 
     
         </ResourceDictionary> 
     
        </Application.Resources> 
     
    </Application>

    私app.xamlであり、これは私はありませんapp.xaml.cs

    namespace MMS.UI 
     
    { 
     
        /// <summary> 
     
        /// Interaction logic for App.xaml 
     
        /// </summary> 
     
        public partial class App : Application 
     
        { 
     
         public App() 
     
         { 
     
          base.DispatcherUnhandledException += App_DispatcherUnhandledException; 
     
         } 
     
    
     
         void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) 
     
         { 
     
          var ex = new CustomException(e.Exception, "Providers, App.xaml()"); 
     
         } 
     
    
     
         protected override void OnStartup(StartupEventArgs e) 
     
         { 
     
          Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("tr-TR"); ; 
     
          Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("tr-TR"); ; 
     
    
     
          FrameworkElement.LanguageProperty.OverrideMetadata(
     
           typeof(FrameworkElement), 
     
           new FrameworkPropertyMetadata(
     
            XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag))); 
     
    
     
          base.OnStartup(e); 
     
         } 
     
        } 
     
    }

    です任意のoを開こうとするtherが形成する。しかし、彼らの出来事はまだ発砲しています。

  • +1

    他のウィンドウのイベントが発生すると、他のウィンドウが開きます。ただしないでください。 –

    +6

    他のフォームが表示される前に明示的に作成しています。初期化中で、イベントが発生します。誰もあなたのコードを見ていなくても、あなたのコードのどこに起こっているのかを教えてくれる人はいません。 –

    +0

    コメントありがとうございます。私は自分の質問を編集し、コードを貼り付けました。 –

    答えて

    0

    [OK]を、私は私の悪いを考え出しし、このような他の形式の初期化機能するので、それはだった:私は私のプロジェクトが持っているウィンドウを取得しようとしていた

    List<MetroWindow> wndList = new List<MetroWindow>(); 
     
          try 
     
          { 
     
           Assembly uiProject = Assembly.Load("MMS"); 
     
           foreach (Type t in uiProject.GetTypes()) 
     
           { 
     
            if (t.BaseType == typeof(MetroWindow)) 
     
            { 
     
             var emptyCtor = t.GetConstructor(Type.EmptyTypes); 
     
             if (emptyCtor != null) 
     
             { 
     
              MetroWindow f = (MetroWindow)emptyCtor.Invoke(new object[] { }); 
     
              // t.FullName will help distinguish the unwanted entries and 
     
              // possibly later ignore them 
     
              wndList.Add(f); 
     
             } 
     
            } 
     
           } 
     
           return wndList; 
     
          } 
     
          catch (Exception err) 
     
          { 
     
           // log exception 
     
           return null; 
     
          }

    。悪い英語で申し訳ありません。あなたの褒め言葉が解決のために私に灯されました。

    関連する問題