반응형

1. DynamicResource 를 프로젝트에 추가

  • BrushColor.xaml : Color값들에 대하여 정의
  • StyleCommon.xaml : UI Control들에 적용될 여러가지 스타일들에 대하여 정의 

BrushColor.xaml

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    
    <SolidColorBrush x:Key="colorBgSearchPanel" Color="#242323"/>
    <SolidColorBrush x:Key="colorSeg_N" Color="#10ffffff"/>
    <SolidColorBrush x:Key="colorSegLine_N" Color="#d8d8d8"/>
    <SolidColorBrush x:Key="colorSeg_H" Color="#20ffffff"/>

</ResourceDictionary>

StyleCommon.xaml 

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="BrushColor.xaml"/>
    </ResourceDictionary.MergedDictionaries>

    <Style x:Key="recBgSearchPanel" TargetType="{x:Type Rectangle}">
        <Setter Property="Fill" Value="{DynamicResource colorBgSearchPanel}"/>
    </Style>

	<Style x:Key="recBg_SegSearch" TargetType="{x:Type Rectangle}">
		<Setter Property="RadiusX" Value="20"/>
		<Setter Property="RadiusY" Value="20"/>
		<Setter Property="Fill" Value="{DynamicResource colorSeg_N}"/>
		<Setter Property="Stroke" Value="{DynamicResource colorSegLine_N}"/>
	</Style>

</ResourceDictionary>

2. App.xaml에 ResourceDictionary 등록

App.xaml

<Application x:Class="Examples.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:Examples"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Resources/ResourceDictionary/StyleCommon.xaml"/>
                <ResourceDictionary Source="Resources/ResourceDictionary/BrushColor.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

3. UI XAML에 Control 추가 및 Style 적용 

 

XML Code

<Grid x:Name="grdQuickSearch" >
	<Rectangle  Style="{DynamicResource recBgSearchPanel}"/>
	<StackPanel x:Name="pnlQuickSearch" Margin="12" Orientation="Vertical">
		<Grid x:Name="grdSegSearchPeriod" Height="40">
			<Grid.ColumnDefinitions>
				<ColumnDefinition Width="*"/>
				<ColumnDefinition Width="*"/>
				<ColumnDefinition Width="*"/>
				<ColumnDefinition Width="*"/>
				<ColumnDefinition Width="*"/>
			</Grid.ColumnDefinitions>
			<Rectangle Grid.ColumnSpan="5" Style="{DynamicResource recBg_SegSearch}"/>
			<RadioButton x:Name="sgbPeriodToday" Uid="1" Grid.Column="0" Content="Today" Style="{DynamicResource sgbSearchLeft}"/>
			<RadioButton x:Name="sgbPeriodYesterday" Uid="2" Grid.Column="1" Content="3 Days" Style="{DynamicResource sgbSearchMiddle}"/>
			<RadioButton x:Name="sgbPeriodWeek" Uid="3" Grid.Column="2" Content="7 Days" Style="{DynamicResource sgbSearchMiddle}" />
			<RadioButton x:Name="sgbPeriodMonth" Uid="4" Grid.Column="3" Content="1 Month" Style="{DynamicResource sgbSearchMiddle}"/>
			<RadioButton x:Name="sgbPeriodAll" Uid="5" Grid.Column="4" Content="All" Style="{DynamicResource sgbSearchRight}"/>
		</Grid>
	</StackPanel>
</Grid>

Style을 미적용시

반응형

'[====== Development ======] > C#' 카테고리의 다른 글

Xaml (WPF)  (0) 2021.01.12
WPF Code Behind에서 Grid 의 Column Size 변경 방법  (0) 2021.01.12
.Net용 Json 라이브러리  (0) 2021.01.07
REST API 사용  (1) 2021.01.07
Extension Method  (0) 2021.01.07

+ Recent posts