Как вы оформляете этикетку для Silverlight ToggleSwitch? - PullRequest
0 голосов
/ 08 августа 2011

Я хочу изменить цвет переднего плана Silverlight ToggleSwitch, хотя, когда я открываю объект в ExpressionBlend, у меня нет элементов для редактирования.

Как это сделать?(без восстановления ИЛИ с использованием отражателя)?

Ответы [ 2 ]

1 голос
/ 08 августа 2011

Я думаю, вам нужно будет определить новый шаблон для элемента управления, а затем изменить свой стиль по своему усмотрению.

Вы можете сделать это, щелкнув правой кнопкой мыши на элементе управления и выбравОтредактируйте шаблон и затем создайте Редактировать копию .Это создаст для вас новый стиль, который вы можете изменить.

1 голос
/ 08 августа 2011

Я не совсем уверен, что вы делаете неправильно в 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.

...