1

WPF アプリケーションのメイン ウィンドウとして RadWindow を使用したいと考えています。そのため、外側のウィンドウもアプリケーション全体のテーマになります。私はこのアプローチを使用しましたが、その後、アプリケーションはタスクバーに表示されなくなりました。さまざまなスレッドを読んだ後、RadWindow は Window の子ではないため、それが不可能であることがわかりました。

だから今私がやろうとしているのは、何らかの方法で外側のウィンドウを完全に非表示にし、RadWindowを子として使用することですが、他のすべてのコントロールの親です。以下はXAMLです

<Window x:Class="MyTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
        WindowStyle="None"
        Title="MainWindow" >
    <telerik:RadWindow WindowStartupLocation="CenterScreen" Width="Auto" Height="Auto" x:Name="MyRadWindow">
    <Grid>
      <!-- All Controls here -->
    </Grid>
</telerik:RadWindow>
</Window>

しかし、外側の窓を完全に隠すことはできません。それはまだ境界を示しています。次に、2 番目のステップとして、 this から最小化、最大化、およびウィンドウを閉じるイベントを処理する必要がありますRadWidow

誰かがこのアプローチを試した場合は、私を助けてください。または、これを行うためのより良い方法を提案してください。

これらすべてを行う主な目的は、Outerwindow の GUI を現在の TelerikTheme と同期させることです。

4

3 に答える 3

2

通常のウィンドウ内にネストするのではなく、メインクラスをテレリックウィンドウとして設定する必要があると思います:

<telerik:RadWindow x:Class="MyTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
        WindowStyle="None" WindowStartupLocation="CenterScreen" ShowInTaskbar="True"
        Title="MainWindow" >
    <Grid>
      <!-- All Controls here -->
    </Grid>
</telerik:RadWindow>

MyTest.MainWindow の基本クラスを RadWindow に変更することを忘れないでください。

編集:申し訳ありませんが提供されたリンクに気付かなかった. 次の属性を設定することにより、スタイルをオーバーライドしてメイン ウィンドウを非表示にすることができます。

WindowStyle="None" Background="Transparent" AllowsTransparency ="True"
于 2012-08-10T06:02:13.947 に答える
0
  1. 最初に MainWindow.xaml ファイルを開き、Window 宣言を RadWindow 宣言に置き換えます <telerik:RadWindow x:Class="RadWindowAsMainWindow.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" Loaded="RadWindow_Loaded_1" Header="MainWindow" Height="350" Width="525"></telerik:RadWindow>

およびコード ビハインド: `

public partial class MainWindow : RadWindow
    {
     ...
    }

2. Then override OnStartup method of the Application class to show the RadWindow:

public partial class App : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
            new MainWindow().Show();
            base.OnStartup(e);
        }
    }

`

  1. 次に、RadWindowLoad イベントで次のように記述します。

    private void RadWindow_Loaded_1(object sender, RoutedEventArgs e) { var window = this.ParentOfType(); window.ShowInTaskbar = true; }

`

于 2013-07-13T19:48:38.847 に答える