업데이트 : 질문을 다시 읽은 후, 나는이 정확히 OP에 대해 질문 한 것이 아니다 알고 있습니다. 나는 이것을 지울 수 있지만 아마도이 질문에 걸린 누군가에게 유용 할 것입니다.
는 여기에 XAML 리소스 사전은 해당 자원을 참조하고 스타일을 적용 윈도우와 함께, 템플릿 및 트리거를 정의하는, 예입니다.
이 템플릿을 사용하여에보고 사람을 도와 트리거 할 수 있습니다
"Style1.xaml"라는 내 자원
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ControlTemplate x:Key="TonyTemplate" TargetType="Button">
<Border Name="Border"
BorderBrush="Orange"
BorderThickness="3"
CornerRadius="2"
Background="Ivory"
TextBlock.Foreground="Black">
<Grid>
<ContentPresenter RecognizesAccessKey="True"
Margin="{TemplateBinding Padding}"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Border" Property="Background" Value="Yellow" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="Border" Property="Background" Value="Chartreuse" />
<Setter TargetName="Border" Property="BorderBrush" Value="DarkKhaki" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
내 MainWindow를 코드 XAML :
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Style1.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Grid>
<Button Width="100" Height="50"
Template="{StaticResource TonyTemplate}"
Content="Click me"/>
</Grid>
</Window>
시도 할 때 다음 오류가 발생합니다. 'Style'유형의 'BasedOn'속성에서 'DynamicResourceExtension'을 설정할 수 없습니다. –
왜 DynamicResource를 사용하고 있습니까? StaticResource가 스타일 설정에 작동해야합니다. – Charlie
스타일은 CAL을 사용하는 별도의 모듈에 있으므로 DynamicResource를 사용하려면이 스타일을 지정해야합니다. –