Web 開発では、スタイル シートが非常に一般的に使用されます。Swing には、GUI を処理するためのレイアウト マネージャーがあります。XAML がこれらのパラダイムの 1 つを適用するという仮定は正しいですか? 両方?このような場合、どちらが優先されますか?
Intellisense をチェックしましたが、フィールドを除いて、Style
特に明らかなものは何も見つかりませんでした。また、どのキーワードを検索すればよいかわかりません。提案?
Web 開発では、スタイル シートが非常に一般的に使用されます。Swing には、GUI を処理するためのレイアウト マネージャーがあります。XAML がこれらのパラダイムの 1 つを適用するという仮定は正しいですか? 両方?このような場合、どちらが優先されますか?
Intellisense をチェックしましたが、フィールドを除いて、Style
特に明らかなものは何も見つかりませんでした。また、どのキーワードを検索すればよいかわかりません。提案?
探しているのは ResourceDictionary です。これは、App.Resources 要素にスタイルを配置するよりもはるかに柔軟で、スタイルの範囲をより細かく制御できます。
スタイルを App.Resources に配置すると、いくつかの欠点があります。
ResourceDictionary を使用すると、これが大幅に修正されます。
リソース ディクショナリは、CSS ファイルに非常によく似ています。基本的に、これらを使用してさまざまなものを保存します。
また、スタイルシートと同様に、コントロール タイプ全体または名前付きスタイルを使用するコントロールに適用できます。
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/Project.Ui;component/Styles/DialogStyles.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Project.Ui;component/Icons/Error.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Project.Ui;component/Icons/Exit.xaml"/>
<ResourceDictionary Source="pack://application:,,,/Project.Ui;component/Icons/Warning.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
ResourceDictionary の定義:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:po="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:Infrastructure="clr-namespace:Hsbc.Ice.Shell.Infrastructure"
xmlns:Ui="clr-namespace:Hsbc.Ice.Shell.Infrastructure.Ui">
<LinearGradientBrush x:Key="{x:Static Ui:Brushes.SelectedRowBackgroundBrushKey}" StartPoint="0.5,0" EndPoint="0.5,1"
po:Freeze="True">
<GradientStop Color="#4D5F6E96" Offset="0"/>
<GradientStop Color="#2191A0BE" Offset="0.2"/>
<GradientStop Color="#2191A0BE" Offset="0.45"/>
<GradientStop Color="#745F6E96" Offset="1"/>
</LinearGradientBrush>
</ResourceDictionary>
スタイルをリソースとしてアセンブリに保存し、cssとして複数のファイルで利用できるようにするためのより良い方法
確認できます:Silverlightとスタイル
また、Application.Resourcesを介してSilverlightコントロールスタイルを設定する方法も確認してください。
このようなスタイルをApplication.Xamlファイルに入れるか、新しいスタイルを作成します
<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="AppResStyle.App"
>
<Application.Resources>
<Style x:Key="ButtonStyle" TargetType="Button">
<Setter Property="BorderBrush" Value="Green" />
<Setter Property="Foreground" Value="Blue" />
</Style>
</Application.Resources>
</Application>
これで、このように複数のuercontrolで使用して、ボタンにスタイルを割り当てることができます。
<UserControl x:Class="AppResStyle.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="130" Height="80">
<Grid x:Name="LayoutRoot" Background="White">
<Button Content="Button1" Height="75" Width="125" Style="{StaticResource ButtonStyle}" />
</Grid>
</UserControl>