2012-05-03 23 views
7

Win 8 Metro denetimi için özel bir ControlTemplate (XAML) yazarken, VisualState geçişlerine göre denetimi güncelleştirmek için VisualStateManager'ı kullanmamız gerekir. Hepsini kapa Bu Sayfada Hepsini aç Hepsini kapa Belirtiler VisualStateGroup "CommonStates" belgelenen ve diğer VisualStates "PointerOver" ve "Normal" dışında başka tanımlanmış nerede aşağıdaki örnek tüm MSDN üzerinde görüyorum, ancak bulamıyorum. Bir düğme için varsayılan ControlTemplate'i bulmak için SDK'ya girmeniz gerekiyor mu? Öyleyse nerede?Windows 8 için olası VisualStates Metro denetimleri nerede belgeleniyor?

<ControlTemplate TargetType="Button"> 
    <Grid > 
    <VisualStateManager.VisualStateGroups> 
     <VisualStateGroup x:Name="CommonStates"> 

     <VisualStateGroup.Transitions> 

      <!--Take one half second to transition to the PointerOver state.--> 
      <VisualTransition To="PointerOver" 
           GeneratedDuration="0:0:0.5"/> 
     </VisualStateGroup.Transitions> 

     <VisualState x:Name="Normal" /> 

     <!--Change the SolidColorBrush, ButtonBrush, to red when the 
      Pointer is over the button.--> 
     <VisualState x:Name="PointerOver"> 
      <Storyboard> 
      <ColorAnimation Storyboard.TargetName="ButtonBrush" 
          Storyboard.TargetProperty="Color" To="Red" /> 
      </Storyboard> 
     </VisualState> 
     </VisualStateGroup> 
    </VisualStateManager.VisualStateGroups> 
    <Grid.Background> 
     <SolidColorBrush x:Name="ButtonBrush" Color="Green"/> 
    </Grid.Background> 
    </Grid> 
</ControlTemplate> 
+0

Ayrıca bkz: http://stackoverflow.com/questions/10861160/control-styles-and-templates-for-windows-8-metro-ui –

cevap

7

Sen Xaml dosyası tasarım görünümüne ve seçilen Düğme kontrolü ile gidebilirsiniz - sağ/Düzenleme Şablon/Düzenleme akıntısını tıklayın - Size çıkarılan varsayılan şablon alacak. Normalde kontroller, aşağıdaki gibi görsel durumlarda hangi görsel durumların kullanılacağını belirten niteliklerle açıklamalıdır, ancak sadece Düğme gibi bir kontrolün tanımına giderken onları göremiyorum.

[TemplateVisualState(GroupName="CommonStates", Name="Normal")] 
[TemplateVisualState(GroupName="CommonStates", Name="PointerOver")] 
İlgili konular