2013-10-01 6 views
0

VS2012 >> 새로운 실버 라이트 프로젝트 >> 실버 버튼 기본 템플릿은 어떻게 든 변화가술에 취해 실버 - 버튼 배경 단색 배경 색상 내가 재설정 및 복원 방법 .. 그라데이션 효과

<UserControl x:Class="SilverlightApplication2.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" 
    d:DesignHeight="300" d:DesignWidth="400"> 

    <Grid x:Name="LayoutRoot" > 
     <Button Background="Red" /> 
    </Grid> 
</UserControl> 
  • 로 표시 기본값으로?
  • WPF 버튼 배경이 모든 버튼의 템플릿에 따라이 문제

enter image description here

답변

0

에게이없는 지금 다른 컨트롤, 미세

  • 버튼 만 문제를 작동합니다. 기본 템플릿에는 반투명 음영 또는 이와 비슷한 것을 시뮬레이트하는 레이어가 있습니다. 컨트롤 템플릿을 더 간단한 것으로 바꾸면 제대로 작동합니다. 당신은 방금 대신 처음부터 시작하는 버튼 하나를 수정할 수 MSDN의 기본 템플릿을 찾을 수 있습니다 http://msdn.microsoft.com/en-us/library/cc278069(v=vs.95).aspx

    특히 나는이 부분을 추측하고있어 기울기입니다 :

    <Border x:Name="Background" CornerRadius="3" Background="White" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}"> 
        <Grid Background="{TemplateBinding Background}" Margin="1"> 
         <Border Opacity="0" x:Name="BackgroundAnimation" Background="#FF448DCA" /> 
         <Rectangle x:Name="BackgroundGradient" > 
          <Rectangle.Fill> 
           <LinearGradientBrush StartPoint=".7,0" EndPoint=".7,1"> 
            <GradientStop Color="#FFFFFFFF" Offset="0" /> 
            <GradientStop Color="#F9FFFFFF" Offset="0.375" /> 
            <GradientStop Color="#E5FFFFFF" Offset="0.625" /> 
            <GradientStop Color="#C6FFFFFF" Offset="1" /> 
           </LinearGradientBrush> 
          </Rectangle.Fill> 
         </Rectangle> 
        </Grid> 
    </Border> 
    
  • +0

    , 나는 행동 및 실버 기본 버튼처럼 보이도록 실버 기본 버튼 싶어, + 내가이 기본 버튼 스타일을 시도 .. 같은 결과 – Zakos

    +0

    나는이 스타일을 사용하지만 사용하여 사각형을 제거 의미 구배. 기본 실버 라이트 버튼에는 강조 표시가되어 있으므로 그렇게 생각하는 것입니다. –

    +0

    이 질문을 할 수 있습니다, 어떻게 재설정/실버 라이트 템플릿을 기본값으로 복원? – Zakos

    1

    처럼 @ 알렉스는 말한다, 그라디언트는 버튼에서 사용하는 템플릿의 결과입니다. 배경을 설정하는 색상에 관계없이 그라디언트가 표시됩니다.

    변경할 방법 중 하나는 템플릿을 @Alex 제안대로 수정하는 것입니다.

    또 다른 방법은 Button의 내용을 Grid로 설정 한 다음 원하는 단색으로 Grid를 설정하는 것입니다. 내가 해결 방법을 찾고 있지 않다

    <Button Height="100" Click="OnClick" Width="100"> 
          <Button.Content> 
           <Grid Height="100" Width="100" IsHitTestVisible="False" Background="Blue"/> 
          </Button.Content> 
         </Button> 
    
    +0

    당신은 모두이 문제를 해결하기 위해 노력하고 있습니다. 어쨌든 실버 라이트 버튼의 기본 템플릿이 변경되었습니다. 며칠 전에 일어난 일입니다. 어떻게 재설정했는지,이 변경 템플릿을 실행 취소했는지, 알렉스 링크의 기본 버튼 템플릿을 사용해 보았습니다. 결과 – Zakos

    +0

    템플릿을 변경하는 유일한 방법은 스타일로 설정하는 것입니다. 따라서 Style = "{StaticResource x : Key = MyStyle}"이 아니면 기본 스타일을 사용하고 있습니다. –

    +0

    다른 가능성은 리소스 파일에서 자동으로 사용되는 "기본"스타일을 가졌다는 것입니다. 그런 다음 해당 스타일에 키가 지정되면 더 이상 기본값이 아니며 사용되지 않습니다. –