대화 스타일(Style)
25177 단어 style
제목을 보시면 다음에 뭘 할지 다들 아실 거예요. 똑똑한 게 그렇게 생각해요~
설명: 모든 요소의 스타일은 FrameworkElement 또는 FrameworkContentElement이 파생됩니다. 스타일에서 보통 Resources 부분의 자원으로 성명할 수 있습니다.양식은 자원이기 때문에 모든 자원에 적용되는 동일한 범위 규칙을 준수하기 때문에, 양식이 적용될 수 있는 영향의 위치를 설명하는 데 사용된다.
스타일 선언에는 하나 이상의 객체 집합을 포함하는 Style 객체가 있습니다.각 Setter에는 Setter 및 Property가 포함됩니다.속성은 요소의 속성 이름이고 스타일은 에 적용됩니다.양식이 자원으로 성명되면 다른 자원과 인용할 수 있습니다.
주의: 여러 개의 setter 집합이 있는 setter가 같은 Value 속성 값을 가지고 있다면, 마지막으로 사용된 setter를 설명합니다.마찬가지로, 같은 속성의 값을 스타일과 요소에서 직접 설정하면, 요소의 값이 직접 우선됩니다.
스타일의 Windows Presentation Foundation(WPF)과 템플릿 모델은 검색과 표현과 논리의 분리를 유지하고 공유할 수 있습니다.스타일 및 템플릿 모델에는 UI 기능을 사용자 정의할 수 있는 키트가 포함되어 있습니다.Style 클래스는 다음과 같습니다.
1 >> Trigger
2 @basicTrigger
3 eg:
4 <Window.Resources>
5 <Style TargetType="CheckBox">
6 <Style.Triggers>
7 <Trigger Property="IsChecked" Value="True">
8 <Trigger.Setters>
9 <Setter Property="Foreground" Value="Orange"></Setter>
10 <Setter Property="FontSize" Value="18"></Setter>
11 </Trigger.Setters>
12 </Trigger>
13 </Style.Triggers>
14 </Style>
15 </Window.Resources>
16 >>MultiTrigger(MultiConditionTrigger)
17 @
18 eg:
19 <Window.Resources>
20 <Style TargetType="CheckBox">
21 <Style.Triggers>
22 <MultiTrigger>
23 <MultiTrigger.Conditions>
24 <Condition Property="IsChecked" Value="True"></Condition>
25 <Condition Property="Content" Value=" "></Condition>
26 </MultiTrigger.Conditions>
27 <MultiTrigger.Setters>
28 <Setter Property="FontSize" Value="20"/>
29 <Setter Property="FontWeight" Value="Bold"/>
30 </MultiTrigger.Setters>
31 </MultiTrigger>
32 </Style.Triggers>
33 </Style>
34 </Window.Resources>
35 >> DataTrigger
36 : 。
37 :DataTrigger Binding ,
38 Value ,DataTrigger 。
39 eg:
40 <Window.Resources>
41 <local:L2BConverter x:Key="L2BVal"/>
42 <Style TargetType="TextBox">
43 <Style.Triggers>
44 <DataTrigger Binding="{Binding RelativeSource={x:Static RelativeSource.Self},Path=Text.Length,Converter={ StaticResource ResourceKey=L2BVal}}" Value="false">
45 <Setter Property="BorderBrush" Value="Red"></Setter>
46 <Setter Property="BorderThickness" Value="2"></Setter>
47 </DataTrigger>
48 </Style.Triggers>
49
50 </Style>
51 </Window.Resources>
52 >> MultiDataTrigger
53 @
54 >> EventTrigger
55 @ : : , Setter
56 eg:
57 <Window.Resources>
58 <Style TargetType="Button">
59 <Style.Triggers>
60 <EventTrigger RoutedEvent="MouseEnter">
61 <BeginStoryboard>
62 <Storyboard>
63 <DoubleAnimation Duration="0:0:0.2" To="300" Storyboard.TargetProperty="Width"></DoubleAnimation>
64 </Storyboard>
65 </BeginStoryboard>
66 </EventTrigger>
67 <EventTrigger RoutedEvent="MouseLeave">
68 <BeginStoryboard>
69 <Storyboard>
70 <DoubleAnimation Duration="0:0:0.2" Storyboard.TargetProperty="Width"></DoubleAnimation>
71 </Storyboard>
72 </BeginStoryboard>
73 </EventTrigger>
74 </Style.Triggers>
75 </Style>
76 </Window.Resources>
1 >> ControlTemplate
2 <Style TargetType="Button">
3 <!--Set to true to not get any properties from the themes.-->
4 <Setter Property="OverridesDefaultStyle" Value="True"/>
5 <Setter Property="Template">
6 <Setter.Value>
7 <ControlTemplate TargetType="Button">
8 <Grid>
9 <Ellipse Fill="{TemplateBinding Background}"/>
10 <ContentPresenter HorizontalAlignment="Center"
11 VerticalAlignment="Center"/>
12 </Grid>
13 </ControlTemplate>
14 </Setter.Value>
15 </Setter>
16 </Style>
>> DataTemplate
<Page x:Class="WpfBrowserApplication1.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c="clr-namespace:System.Collections;assembly=mscorlib"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Title="Page1">
<Page.Resources>
<DataTemplate x:Key="itemTemplate">
<CheckBox Name="cb" Content="{Binding}"></CheckBox>
</DataTemplate>
</Page.Resources>
<Grid>
<ListBox ItemTemplate="{StaticResource itemTemplate}">
<ListBox.ItemsSource>
<c:ArrayList>
<sys:DateTime>1987-10-21</sys:DateTime>
<sys:DateTime>1987-10-21</sys:DateTime>
<sys:DateTime>1987-10-21</sys:DateTime>
<sys:DateTime>1987-10-21</sys:DateTime>
<sys:DateTime>1987-10-21</sys:DateTime>
</c:ArrayList>
</ListBox.ItemsSource>
</ListBox>
</Grid>
</Page>
:Style Triggers
<Page.Resources>
<DataTemplate x:Key="itemTemplate">
<CheckBox Name="cb" Content="{Binding}"></CheckBox>
</DataTemplate>
<Style TargetType="{x:Type CheckBox}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="IsChecked" Value="true"></Setter>
<Setter Property="Foreground" Value="red"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</Page.Resources>
:DataTrigger
<Page.Resources>
<DataTemplate x:Key="itemTemplate">
<CheckBox Name="cb" Content="{Binding}"/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Month}" Value="10">
<Setter TargetName="cb" Property="IsChecked" Value="true"></Setter>
<Setter TargetName="cb" Property="Foreground" Value="red"></Setter>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
<Style TargetType="{x:Type CheckBox}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="IsChecked" Value="true"></Setter>
<Setter Property="Foreground" Value="red"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</Page.Resources>
Style.BasedOn 속성
1 <Window x:Class="StyleBasedOn.MainWindow"
2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4 Title="MainWindow" Height="350" Width="525">
5 <Window.Resources>
6 <Style x:Key="style1" TargetType="{x:Type Button}" >
7 <Setter Property="Background" Value="Yellow"></Setter>
8 <Setter Property="FontSize" Value="20"></Setter>
9 </Style>
10 <Style x:Key="style2" TargetType="{x:Type TextBlock}">
11 <Setter Property="Foreground" Value="Red"></Setter>
12 </Style>
13 <Style x:Key="style3" TargetType="{x:Type Button}" BasedOn="{StaticResource style1}">
14 <Setter Property="FontStyle" Value="Italic"></Setter>
15 </Style>
16 </Window.Resources>
17 <Grid>
18 <StackPanel>
19 <Button Width="100" Height="50" Click="Button_Click" Content=" " Style="{StaticResource style3}"></Button>
20 <TextBlock FontSize="20" Tag="1" Style="{StaticResource style2}"> </TextBlock>
21 </StackPanel>
22 </Grid>
23 </Window>
주의:1.각 스타일에는 BasedOn 값이 하나만 지원됩니다.
2.DataTemplate 속성을 사용하여 스타일을 만들고 그것에 따라 TargetType 속성의 다른 스타일을 정의하려면, 기본 스타일의 유형과 파생된 스타일의 대상 유형을 파생시켜야 합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Android 앱 개발】 전체 화면을 표시하는 방법 (알림 표시 줄 숨기기)Android 앱을 전체 화면으로 표시하고 싶지만 프로젝트 초기 설정 (Activity)에서 "Empty Activity"를 선택해도 통지 바가 표시되므로, 이번은 이 통지 바 주위의 설정을 정리해 기술하고 싶습니다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.