我想改变Silverlight ToggleSwitch的前景色,但是当我在ExpressionBlend中打开对象时,我没有要编辑的对象项目。你如何为Silverlight ToggleSwitch设计标签风格?
这是如何完成的? (没有重建或使用反射器)?
我想改变Silverlight ToggleSwitch的前景色,但是当我在ExpressionBlend中打开对象时,我没有要编辑的对象项目。你如何为Silverlight ToggleSwitch设计标签风格?
这是如何完成的? (没有重建或使用反射器)?
我不太清楚你在做什么错在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
使用。
我认为你需要为控件定义一个新的模板,然后根据需要改变你的风格。
您可以通过右键单击您的控件并选择编辑模板然后创建您的编辑副本。这将为您创建一个可以更改的新款式。
问题是控件没有切换描述文本元素它的风格,所以似乎没有办法通过创建一个新的模板来设计它的样式....? – Doug
我看不到上面任何地方的标签/开关说明..? – Doug
你说你想改变开关的前景颜色,那么你需要改变模板的BorderBrush =“{StaticResource PhoneForegroundBrush}”部分 – gyurisc