2011-08-08 23 views

回答

1

我不太清楚你在做什么错在Blend,但是,你可以看到在ToggleSwitch的模板,如果你看看源代码为ToggleSwitch这里:

http://silverlight.codeplex.com/SourceControl/changeset/view/61620#1325059

忽略了故事板/ VisualStateManager,控制具有以下标记:

<Grid x:Name="SwitchRoot" Background="Transparent" Height="95" Width="136"> 
    <Grid x:Name="SwitchTrack" Width="88"> 
    <Grid x:Name="SwitchBottom" Background="{TemplateBinding SwitchForeground}" Height="32"> 
     <Rectangle 
     x:Name="SwitchBackground" 
     Fill="{TemplateBinding Background}" 
     Width="76" 
     Height="20" 
     HorizontalAlignment="Center" 
     VerticalAlignment="Center"> 
     <Rectangle.RenderTransform> 
      <TranslateTransform x:Name="BackgroundTranslation"/> 
     </Rectangle.RenderTransform> 
     </Rectangle> 
     <Border BorderBrush="{StaticResource PhoneForegroundBrush}" BorderThickness="2"> 
     <Border BorderBrush="{StaticResource PhoneBackgroundBrush}" BorderThickness="4"/> 
     </Border> 
    </Grid> 
    <Border 
     x:Name="SwitchThumb" 
     BorderBrush="{StaticResource PhoneBackgroundBrush}" 
     BorderThickness="4,0" 
     Margin="-4,0" 
     Width="28" 
     Height="36" 
     HorizontalAlignment="Left"> 
     <Border.RenderTransform> 
     <TranslateTransform x:Name="ThumbTranslation"/> 
     </Border.RenderTransform> 
     <Border 
     x:Name="ThumbCenter" 
     BorderBrush="{StaticResource PhoneForegroundBrush}" 
     BorderThickness="2" 
     Background="White"/> 
    </Border> 
    </Grid> 
</Grid> 

我会建议使用不同的颜色,其中资源PhoneForegroundBrush使用。

+0

我看不到上面任何地方的标签/开关说明..? – Doug

+0

你说你想改变开关的前景颜色,那么你需要改变模板的BorderBrush =“{StaticResource PhoneForegroundBrush}”部分 – gyurisc

1

我认为你需要为控件定义一个新的模板,然后根据需要改变你的风格。

您可以通过右键单击您的控件并选择编辑模板然后创建您的编辑副本。这将为您创建一个可以更改的新款式。

+1

问题是控件没有切换描述文本元素它的风格,所以似乎没有办法通过创建一个新的模板来设计它的样式....? – Doug