2010-07-12 3 views
0

Я не могу применить стиль во время выполнения на дочернем окне. Я создал два стиля: один с хром и один без хрома. То, что я хотел сделать, это включить полноэкранный режим медиаплеера, отключить перетаскивание дочернего окна и нажать кнопку выхода (обычный режим), чтобы включить перетаскивание дочернего окна. Мой код выглядит следующим образом:Как применять стили во время выполнения в Childwindow в silverlight?

void Content_FullScreenChanged(object sender, EventArgs e) 
{ 

     if (App.Current.Host.Content.IsFullScreen) 
     { 

      ObjChildMediaPlayer.Style = Application.Current.Resources["TestStyle"] as Style; 
     } 
     else 
     { 

      ObjChildMediaPlayer.Style = Application.Current.Resources["TestBasicStyle"] as Style;     

     } 

     ObjChildMediaPlayer.UpdateLayout(); 
    } 

На весь экран перетаскивании отключить, но когда я нажимаю кнопку выхода он не тащит. Я хочу, чтобы дочернее окно перетаскивалось в обычном режиме.

+0

Его невозможно диагностировать, не видя содержимого стилей. – AnthonyWJones

ответ

0

TestStyle:

<Style x:Key ="TestStyle" TargetType="controls:ChildWindow"> 
    <Setter Property="IsTabStop" Value="True" /> 
    <Setter Property="TabNavigation" Value="Cycle" /> 
    <Setter Property="HorizontalAlignment" Value="Center" /> 
    <Setter Property="VerticalAlignment" Value="Center" /> 
    <Setter Property="BorderThickness" Value="1" /> 
    <Setter Property="BorderBrush"> 
     <Setter.Value> 
      <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1"> 
       <GradientStop Color="#FFA3AEB9" Offset="0" /> 
       <GradientStop Color="#FF8399A9" Offset="0.375" /> 
       <GradientStop Color="#FF718597" Offset="0.375" /> 
       <GradientStop Color="#FF617584" Offset="1" /> 
      </LinearGradientBrush> 
     </Setter.Value> 
    </Setter> 
    <Setter Property="OverlayBrush"> 
     <Setter.Value> 
      <SolidColorBrush Color="#7F000000" /> 
     </Setter.Value> 
    </Setter> 
    <Setter Property="OverlayOpacity" Value="1" /> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="controls:ChildWindow"> 
       <Grid x:Name="Root"> 
        <Grid.Resources> 
         <Style x:Key="ButtonStyle" TargetType="Button"> 
          <Setter Property="Background" Value="#FF1F3B53" /> 
          <Setter Property="Foreground" Value="#FF000000" /> 
          <Setter Property="Padding" Value="3" /> 
          <Setter Property="BorderThickness" Value="1" /> 
          <Setter Property="BorderBrush"> 
           <Setter.Value> 
            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
             <GradientStop Color="#FFA3AEB9" Offset="0" /> 
             <GradientStop Color="#FF8399A9" Offset="0.375" /> 
             <GradientStop Color="#FF718597" Offset="0.375" /> 
             <GradientStop Color="#FF617584" Offset="1" /> 
            </LinearGradientBrush> 
           </Setter.Value> 
          </Setter> 
          <Setter Property="Template"> 
           <Setter.Value> 
            <ControlTemplate TargetType="Button"> 
             <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Width="15" Height="14" Background="#02FFFFFF" x:Name="grid"> 
              <vsm:VisualStateManager.VisualStateGroups> 
               <vsm:VisualStateGroup x:Name="CommonStates"> 
                <vsm:VisualState x:Name="Normal" /> 
                <vsm:VisualState x:Name="MouseOver"> 
                 <Storyboard> 
                  <ObjectAnimationUsingKeyFrames Storyboard.TargetName="X_Fuzz2" Storyboard.TargetProperty="Visibility"> 
                   <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" /> 
                  </ObjectAnimationUsingKeyFrames> 
                  <ObjectAnimationUsingKeyFrames Storyboard.TargetName="X_Fuzz1" Storyboard.TargetProperty="Visibility"> 
                   <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" /> 
                  </ObjectAnimationUsingKeyFrames> 
                  <ObjectAnimationUsingKeyFrames Storyboard.TargetName="X_Fuzz0" Storyboard.TargetProperty="Visibility"> 
                   <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" /> 
                  </ObjectAnimationUsingKeyFrames> 
                  <DoubleAnimation Duration="0" Storyboard.TargetName="X" Storyboard.TargetProperty="Opacity" To="0.95" /> 
                 </Storyboard> 
                </vsm:VisualState> 
                <vsm:VisualState x:Name="Pressed"> 
                 <Storyboard> 
                  <DoubleAnimation Duration="0" Storyboard.TargetName="X" Storyboard.TargetProperty="Opacity" To="0.85" /> 
                  <ObjectAnimationUsingKeyFrames Storyboard.TargetName="X_Fuzz2" Storyboard.TargetProperty="Visibility"> 
                   <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" /> 
                  </ObjectAnimationUsingKeyFrames> 
                  <ObjectAnimationUsingKeyFrames Storyboard.TargetName="X_Fuzz1" Storyboard.TargetProperty="Visibility"> 
                   <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" /> 
                  </ObjectAnimationUsingKeyFrames> 
                  <ObjectAnimationUsingKeyFrames Storyboard.TargetName="X_Fuzz0" Storyboard.TargetProperty="Visibility"> 
                   <DiscreteObjectKeyFrame KeyTime="0" Value="Visible" /> 
                  </ObjectAnimationUsingKeyFrames> 
                 </Storyboard> 
                </vsm:VisualState> 
                <vsm:VisualState x:Name="Disabled"> 
                 <Storyboard> 
                  <DoubleAnimation Duration="0" Storyboard.TargetName="X" Storyboard.TargetProperty="Opacity" To="0.5" /> 
                 </Storyboard> 
                </vsm:VisualState> 
               </vsm:VisualStateGroup> 
              </vsm:VisualStateManager.VisualStateGroups> 
              <Path HorizontalAlignment="Center" Margin="0,-1,0,0" Width="9" Fill="#14C51900" Stretch="Fill" Data="F1 M 6.742676,3.852539 L 9.110840,1.559570 L 8.910645,0.500000 L 6.838379,0.500000 L 4.902832,2.435547 L 2.967285,0.500000 L 0.895020,0.500000 L 0.694824,1.559570 L 3.062988,3.852539 L 0.527832,6.351563 L 0.689941,7.600586 L 2.967285,7.600586 L 4.897949,5.575195 L 6.854004,7.600586 L 9.115723,7.600586 L 9.277832,6.351563 L 6.742676,3.852539 Z" x:Name="X_Fuzz2" Stroke="#14C51900" Height="8" VerticalAlignment="Center" Opacity="1" RenderTransformOrigin="0.5,0.5" Visibility="Collapsed"> 
               <Path.RenderTransform> 
                <TransformGroup> 
                 <ScaleTransform ScaleX="1.3" ScaleY="1.3" /> 
                </TransformGroup> 
               </Path.RenderTransform> 
              </Path> 
              <Path HorizontalAlignment="Center" Margin="0,-1,0,0" Width="9" Fill="#1EC51900" Stretch="Fill" Data="F1 M 6.742676,3.852539 L 9.110840,1.559570 L 8.910645,0.500000 L 6.838379,0.500000 L 4.902832,2.435547 L 2.967285,0.500000 L 0.895020,0.500000 L 0.694824,1.559570 L 3.062988,3.852539 L 0.527832,6.351563 L 0.689941,7.600586 L 2.967285,7.600586 L 4.897949,5.575195 L 6.854004,7.600586 L 9.115723,7.600586 L 9.277832,6.351563 L 6.742676,3.852539 Z" x:Name="X_Fuzz1" Stroke="#1EC51900" Height="8" VerticalAlignment="Center" Opacity="1" RenderTransformOrigin="0.5,0.5" Visibility="Collapsed"> 
               <Path.RenderTransform> 
                <TransformGroup> 
                 <ScaleTransform ScaleX="1.1" ScaleY="1.1" /> 
                </TransformGroup> 
               </Path.RenderTransform> 
              </Path> 
              <Path HorizontalAlignment="Center" Margin="0,-1,0,0" Width="9" Fill="#FFC51900" Stretch="Fill" Data="F1 M 6.742676,3.852539 L 9.110840,1.559570 L 8.910645,0.500000 L 6.838379,0.500000 L 4.902832,2.435547 L 2.967285,0.500000 L 0.895020,0.500000 L 0.694824,1.559570 L 3.062988,3.852539 L 0.527832,6.351563 L 0.689941,7.600586 L 2.967285,7.600586 L 4.897949,5.575195 L 6.854004,7.600586 L 9.115723,7.600586 L 9.277832,6.351563 L 6.742676,3.852539 Z" x:Name="X_Fuzz0" Stroke="#FFC51900" Height="8" VerticalAlignment="Center" Opacity="1" Visibility="Collapsed" /> 
              <Path HorizontalAlignment="Center" Margin="0,-1,0,0" Width="9" Fill="#FFFFFFFF" Stretch="Fill" Data="F1 M 6.742676,3.852539 L 9.110840,1.559570 L 8.910645,0.500000 L 6.838379,0.500000 L 4.902832,2.435547 L 2.967285,0.500000 L 0.895020,0.500000 L 0.694824,1.559570 L 3.062988,3.852539 L 0.527832,6.351563 L 0.689941,7.600586 L 2.967285,7.600586 L 4.897949,5.575195 L 6.854004,7.600586 L 9.115723,7.600586 L 9.277832,6.351563 L 6.742676,3.852539 Z" x:Name="X" Height="8" VerticalAlignment="Center" Opacity="0.7"> 
               <Path.Stroke> 
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
                 <GradientStop Color="#FF313131" Offset="1" /> 
                 <GradientStop Color="#FF8E9092" Offset="0" /> 
                </LinearGradientBrush> 
               </Path.Stroke> 
              </Path> 
             </Grid> 
            </ControlTemplate> 
           </Setter.Value> 
          </Setter> 
         </Style> 
        </Grid.Resources> 
        <vsm:VisualStateManager.VisualStateGroups> 
         <vsm:VisualStateGroup x:Name="WindowStates"> 
          <vsm:VisualState x:Name="Open"> 
           <Storyboard> 
            <DoubleAnimationUsingKeyFrames BeginTime="0" Storyboard.TargetName="Overlay" Storyboard.TargetProperty="Opacity"> 
             <EasingDoubleKeyFrame KeyTime="0" Value="0" /> 
             <EasingDoubleKeyFrame KeyTime="00:00:00.3" Value="1" /> 
            </DoubleAnimationUsingKeyFrames> 
            <DoubleAnimationUsingKeyFrames BeginTime="0" Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(RenderTransform).(Children)[0].ScaleX"> 
             <SplineDoubleKeyFrame KeyTime="0" Value="0" /> 
             <SplineDoubleKeyFrame KeyTime="00:00:00.25" Value="0" /> 
             <SplineDoubleKeyFrame KeyTime="00:00:00.4" Value="1" /> 
             <SplineDoubleKeyFrame KeySpline="0,0,0.5,1" KeyTime="00:00:00.45" Value="1.05" /> 
             <SplineDoubleKeyFrame KeyTime="00:00:00.55" Value="1" /> 
            </DoubleAnimationUsingKeyFrames> 
            <DoubleAnimationUsingKeyFrames BeginTime="0" Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(RenderTransform).(Children)[0].ScaleY"> 
             <SplineDoubleKeyFrame KeyTime="0" Value="0" /> 
             <SplineDoubleKeyFrame KeyTime="00:00:00.25" Value="0" /> 
             <SplineDoubleKeyFrame KeyTime="00:00:00.4" Value="1" /> 
             <SplineDoubleKeyFrame KeySpline="0,0,0.5,1" KeyTime="00:00:00.45" Value="1.05" /> 
             <SplineDoubleKeyFrame KeyTime="00:00:00.55" Value="1" /> 
            </DoubleAnimationUsingKeyFrames> 
           </Storyboard> 
          </vsm:VisualState> 
          <vsm:VisualState x:Name="Closed"> 
           <Storyboard> 
            <DoubleAnimationUsingKeyFrames BeginTime="0" Storyboard.TargetName="Overlay" Storyboard.TargetProperty="Opacity"> 
             <EasingDoubleKeyFrame KeyTime="0" Value="1" /> 
             <EasingDoubleKeyFrame KeyTime="00:00:00.3" Value="0" /> 
            </DoubleAnimationUsingKeyFrames> 
            <DoubleAnimationUsingKeyFrames BeginTime="0" Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(RenderTransform).(Children)[0].ScaleX"> 
             <SplineDoubleKeyFrame KeyTime="00:00:00.2" Value="1" /> 
             <SplineDoubleKeyFrame KeyTime="00:00:00.25" Value="1.05" /> 
             <SplineDoubleKeyFrame KeyTime="00:00:00.45" Value="0" /> 
            </DoubleAnimationUsingKeyFrames> 
            <DoubleAnimationUsingKeyFrames BeginTime="0" Storyboard.TargetName="ContentRoot" Storyboard.TargetProperty="(RenderTransform).(Children)[0].ScaleY"> 
             <SplineDoubleKeyFrame KeyTime="00:00:00.2" Value="1" /> 
             <SplineDoubleKeyFrame KeyTime="00:00:00.25" Value="1.05" /> 
             <SplineDoubleKeyFrame KeyTime="00:00:00.45" Value="0" /> 
            </DoubleAnimationUsingKeyFrames> 
           </Storyboard> 
          </vsm:VisualState> 
         </vsm:VisualStateGroup> 
        </vsm:VisualStateManager.VisualStateGroups> 
        <Grid x:Name="Overlay" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="0" Background="{TemplateBinding OverlayBrush}" Opacity="{TemplateBinding OverlayOpacity}" /> 
        <Grid x:Name="ContentRoot" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" VerticalAlignment="{TemplateBinding VerticalAlignment}" RenderTransformOrigin="0.5,0.5" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}"> 
         <Grid.RenderTransform> 
          <TransformGroup> 
           <ScaleTransform /> 
           <SkewTransform /> 
           <RotateTransform /> 
           <TranslateTransform /> 
          </TransformGroup> 
         </Grid.RenderTransform> 
         <Border BorderThickness="1" CornerRadius="2" BorderBrush="#14000000" Background="#14000000" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="-1" /> 
         <Border BorderThickness="1" CornerRadius="2.25" BorderBrush="#0F000000" Background="#0F000000" HorizontalAlignment="Stretch" Margin="-2" VerticalAlignment="Stretch" /> 
         <Border BorderThickness="1" CornerRadius="2.5" BorderBrush="#0C000000" Background="#0C000000" HorizontalAlignment="Stretch" Margin="-3" VerticalAlignment="Stretch" /> 
         <Border BorderThickness="1" CornerRadius="2.75" BorderBrush="#0A000000" Background="#0A000000" HorizontalAlignment="Stretch" Margin="-4" VerticalAlignment="Stretch" /> 
         <Border Background="#FFFFFFFF" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="2"> 
          <Border CornerRadius="1.5" Margin="1"> 
           <Border.Background> 
            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
             <GradientStop Color="#FFE5E8EB" Offset="1" /> 
             <GradientStop Color="#FFF6F8F9" Offset="0" /> 
            </LinearGradientBrush> 
           </Border.Background> 
           <Grid IsHitTestVisible="True" > 
            <Grid.RowDefinitions> 
             <RowDefinition Height="Auto" /> 
             <RowDefinition /> 
            </Grid.RowDefinitions> 
            <Border x:Name="Chrome" Width="Auto" BorderBrush="#FFFFFFFF" BorderThickness="0,0,0,1"> 
             <Border.Background> 
              <LinearGradientBrush EndPoint="0.5,0.528" StartPoint="0.5,0"> 
               <GradientStop Color="#FFE5E8EB" Offset="1" /> 
               <GradientStop Color="#FFFEFEFE" Offset="0" /> 
              </LinearGradientBrush> 
             </Border.Background> 
             <Grid Height="Auto" Width="Auto"> 
              <Grid.ColumnDefinitions> 
               <ColumnDefinition /> 
               <ColumnDefinition Width="30" /> 
              </Grid.ColumnDefinitions> 


Другой стиль не имеет хромированного отдыха, все одинаково.

Смежные вопросы