0
첫 번째 win8 응용 프로그램을 개발하고 있습니다. 여러 페이지에 로그 오프 버튼을 만들어야합니다. 일반적으로이 버튼은 텍스트 및 이미지가 포함 된 버튼입니다.WFP 응용 프로그램의 단추 다시 사용
어떤 접근 방식을 선택해야합니까? 템플릿, 리소스 또는 스타일을 크레이트합니까?
첫 번째 win8 응용 프로그램을 개발하고 있습니다. 여러 페이지에 로그 오프 버튼을 만들어야합니다. 일반적으로이 버튼은 텍스트 및 이미지가 포함 된 버튼입니다.WFP 응용 프로그램의 단추 다시 사용
어떤 접근 방식을 선택해야합니까? 템플릿, 리소스 또는 스타일을 크레이트합니까?
style
을 사용하여 단추를 다시 사용할 수 있습니다. 스타일은 template
을 정의해야하고 resource
은 정의 된 위치를 기준으로 사용할 수 있습니다.
x:Key
으로 정의한 단추를 대상으로하는 스타일 샘플은 다른 곳에서 재사용 할 수 있습니다. x:Key
을 지정하지 않고 style
이 Application Resources
에 정의 된 경우 모든 버튼에 스타일이 적용됩니다.
<Style x:Key="CustomStyleButton" TargetType="{x:Type Button}">
<Setter Property="Background" Value="#373737" />
<Setter Property="Foreground" Value="White" />
<Setter Property="FontSize" Value="15" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border CornerRadius="4" Background="{TemplateBinding Background}">
<Grid>
<Path x:Name="PathIcon" Width="15" Height="25" Stretch="Fill" Fill="#4C87B3" HorizontalAlignment="Left" Margin="17,0,0,0" Data="F1 M 30.0833,22.1667L 50.6665,37.6043L 50.6665,38.7918L 30.0833,53.8333L 30.0833,22.1667 Z "/>
<ContentPresenter x:Name="MyContentPresenter" Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,0" />
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#E59400" />
<Setter Property="Foreground" Value="White" />
<Setter TargetName="PathIcon" Property="Fill" Value="Black" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="OrangeRed" />
<Setter Property="Foreground" Value="White" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
샘플 사용은
<Button Width="200" Height="50" Style="{StaticResource CustomStyleButton}" VerticalAlignment="Top" Margin="0,20,0,0" />
<Button.Content>
<StackPanel>
<TextBlock Text="Watch Now" FontSize="20" />
<TextBlock Text="Duration: 50m" FontSize="12" Foreground="Gainsboro" />
</StackPanel>
</Button.Content>
나는 버튼 내부에 이미지를 추가 할 수 있습니까? 아니면 다른 컨트롤을 넣을까요? –
버튼을 원하는대로 정확하게 스타일링 할 수있는 많은 것들이 있습니다. 더 많은 것을 배우기 위해 검색을하십시오. 스타일을 사용할 때 도움이되는 자료는 다음과 같습니다. http://wpftutorial.net/Styles.html – DLeh
@Ask 버튼의 템플릿 속성을 다시 꾸밀 수 있습니다. 당신은 그것을 해킹하기 위해'control'을 사용할 필요가 없습니다. 스타일을 당신의 버튼의 스타일을 다루는 유일한 '패션 디자이너'라고 생각하십시오. –