0

targettypeのすべてのコントロールにテーマ/テンプレート/スタイルを自動的に適用する方法はありますか?すべてのコントロールでTemplate = ...、Style = ...を指定する必要はありませんか?

4

3 に答える 3

2

x:Key 属性を省略するだけでこれを行う方法があると思いましたが、それはもう機能していないようです。いくつかのグーグルに基づいて、カスタムスタイルを定義するthemes/generic.xamlファイルを持つ独自のカスタムコントロールライブラリを作成するのが最善のようです。次に、適切にスタイル設定された独自の要素を使用できます (ボタンの代わりに MyButton)。それかStyle プロパティに固執してください。

この例とテーマを使用した別のアプローチはこちらです

更新:ここでこれの本当に良い例を見つけました(すでに見たことがあると思います:)。

于 2008-10-08T18:04:59.507 に答える
1

すべてのコントロールのテーマを設定するには、スタートアップイベントを作成し、スタートアップイベントハンドラーでテーマを設定します。そのテーマは、そのソリューションのすべてのユーザーコントロールに適用されます。

//App.xaml

<Application x:Uid="Application_1" x:Class="SampleApp.Home.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml"
             Startup="Application_Startup">

//App.xaml.cs

private void Application_Startup(object sender, StartupEventArgs e)
        {
            StyleManager.ApplicationTheme = new MetroTheme(); //Set your theme here           
        } 
于 2012-02-16T03:50:22.293 に答える
0

Einarl: 現在、Silverlight 2 コアでコントロール テンプレート/スタイルを「カスケード」する方法はありません。つまり、TextBox のスタイル/コントロール テンプレートを設定して、すべての TextBox がそれを取得することを期待することはできません。これは間違いなく、チームが将来のバージョンで検討しているものです。

于 2008-10-08T19:02:31.607 に答える