项目中经常要用到childwindow 默认SL提供的界面很不好看 也很难适应系统里的要求

单调的界面

 木关系 可以我们可以通过BLEND自定义成我们想要的

首先新建立一个SILVERLIGHT 子窗口  然后右键在BLEND中编辑 在BLEND打开的时候 会提示是否保存

在BLEND中打开后 在左下脚的面板 选择当前的子窗口 然后右键属性 在编辑模版中选择编辑副本属性

会提示我们新建一个样式  点击确定后 我们会发现界面有了变化 原来Childwindow也是由Border和Grid组成的啊 哈哈

大家参照左下角的布局 就可以调整颜色了 这里我将上栏加宽并调整颜色 然后保存

返回VS这是有木有发现 子窗口比原来好看多了 在看设计代码增加了很多 STYLE 这里的STYLE可以通用 如果别的子窗口也是一样的样式 直接复制粘贴即可

<controls:ChildWindow x:Class="silverlight.ChildWindow1"
           xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
           xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
           xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
           Width="400" Height="300" 
           Title="ChildWindow1">
	<controls:ChildWindow.Resources>
		<Style x:Key="ChildWindowStyle1" TargetType="controls:ChildWindow">
			<Setter Property="IsTabStop" Value="false"/>
			<Setter Property="TabNavigation" Value="Cycle"/>
			<Setter Property="HorizontalAlignment" Value="Center"/>
			<Setter Property="VerticalAlignment" Value="Center"/>
			<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
			<Setter Property="VerticalContentAlignment" Value="Stretch"/>
			<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="OverlayBrush" Value="#7F000000"/>
			<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 x:Name="grid" Background="#02FFFFFF" HorizontalAlignment="Center" Height="14" VerticalAlignment="Center" Width="15">
													<VisualStateManager.VisualStateGroups>
														<VisualStateGroup x:Name="CommonStates">
															<VisualState x:Name="Normal"/>
															<VisualState x:Name="MouseOver">
																<Storyboard>
																	<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="X_Fuzz2">
																		<DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/>
																	</ObjectAnimationUsingKeyFrames>
																	<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="X_Fuzz1">
																		<DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/>
																	</ObjectAnimationUsingKeyFrames>
																	<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="X_Fuzz0">
																		<DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/>
																	</ObjectAnimationUsingKeyFrames>
																	<DoubleAnimation Duration="0" To="0.95" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="X"/>
																</Storyboard>
															</VisualState>
															<VisualState x:Name="Pressed">
																<Storyboard>
																	<DoubleAnimation Duration="0" To="0.85" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="X"/>
																	<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="X_Fuzz2">
																		<DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/>
																	</ObjectAnimationUsingKeyFrames>
																	<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="X_Fuzz1">
																		<DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/>
																	</ObjectAnimationUsingKeyFrames>
																	<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="X_Fuzz0">
																		<DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/>
																	</ObjectAnimationUsingKeyFrames>
																</Storyboard>
															</VisualState>
															<VisualState x:Name="Disabled">
																<Storyboard>
																	<DoubleAnimation Duration="0" To="0.5" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="X"/>
																</Storyboard>
															</VisualState>
														</VisualStateGroup>
													</VisualStateManager.VisualStateGroups>
													<Path x:Name="X_Fuzz2" 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" Fill="#14C51900" HorizontalAlignment="Center" Height="8" Margin="0,-1,0,0" Opacity="1" RenderTransformOrigin="0.5,0.5" Stretch="Fill" Stroke="#14C51900" Visibility="Collapsed" VerticalAlignment="Center" Width="9">
														<Path.RenderTransform>
															<TransformGroup>
																<ScaleTransform ScaleY="1.3" ScaleX="1.3"/>
															</TransformGroup>
														</Path.RenderTransform>
													</Path>
													<Path x:Name="X_Fuzz1" 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" Fill="#1EC51900" HorizontalAlignment="Center" Height="8" Margin="0,-1,0,0" Opacity="1" RenderTransformOrigin="0.5,0.5" Stretch="Fill" Stroke="#1EC51900" Visibility="Collapsed" VerticalAlignment="Center" Width="9">
														<Path.RenderTransform>
															<TransformGroup>
																<ScaleTransform ScaleY="1.1" ScaleX="1.1"/>
															</TransformGroup>
														</Path.RenderTransform>
													</Path>
													<Path x:Name="X_Fuzz0" 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" Fill="#FFC51900" HorizontalAlignment="Center" Height="8" Margin="0,-1,0,0" Opacity="1" Stretch="Fill" Stroke="#FFC51900" Visibility="Collapsed" VerticalAlignment="Center" Width="9"/>
													<Path x:Name="X" 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" Fill="#FFFFFFFF" HorizontalAlignment="Center" Height="8" Margin="0,-1,0,0" Opacity="0.7" Stretch="Fill" VerticalAlignment="Center" Width="9">
														<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>
							<VisualStateManager.VisualStateGroups>
								<VisualStateGroup x:Name="WindowStates">
									<VisualState x:Name="Open">
										<Storyboard>
											<DoubleAnimationUsingKeyFrames BeginTime="0" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="Overlay">
												<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
												<EasingDoubleKeyFrame KeyTime="00:00:00.3" Value="1"/>
											</DoubleAnimationUsingKeyFrames>
											<DoubleAnimationUsingKeyFrames BeginTime="0" Storyboard.TargetProperty="(RenderTransform).(Children)[0].ScaleX" Storyboard.TargetName="ContentRoot">
												<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.TargetProperty="(RenderTransform).(Children)[0].ScaleY" Storyboard.TargetName="ContentRoot">
												<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>
									</VisualState>
									<VisualState x:Name="Closed">
										<Storyboard>
											<DoubleAnimationUsingKeyFrames BeginTime="0" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="Overlay">
												<EasingDoubleKeyFrame KeyTime="0" Value="1"/>
												<EasingDoubleKeyFrame KeyTime="00:00:00.3" Value="0"/>
											</DoubleAnimationUsingKeyFrames>
											<DoubleAnimationUsingKeyFrames BeginTime="0" Storyboard.TargetProperty="(RenderTransform).(Children)[0].ScaleX" Storyboard.TargetName="ContentRoot">
												<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.TargetProperty="(RenderTransform).(Children)[0].ScaleY" Storyboard.TargetName="ContentRoot">
												<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>
									</VisualState>
								</VisualStateGroup>
							</VisualStateManager.VisualStateGroups>
							<Grid x:Name="Overlay" Background="{TemplateBinding OverlayBrush}" HorizontalAlignment="Stretch" Margin="0" Opacity="{TemplateBinding OverlayOpacity}" VerticalAlignment="Top"/>
							<Grid x:Name="ContentRoot" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" Height="{TemplateBinding Height}" RenderTransformOrigin="0.5,0.5" VerticalAlignment="{TemplateBinding VerticalAlignment}" Width="{TemplateBinding Width}">
								<Grid.RenderTransform>
									<TransformGroup>
										<ScaleTransform/>
										<SkewTransform/>
										<RotateTransform/>
										<TranslateTransform/>
									</TransformGroup>
								</Grid.RenderTransform>
								<Border BorderBrush="#14000000" BorderThickness="1" Background="#14000000" CornerRadius="2" HorizontalAlignment="Stretch" Margin="-1" VerticalAlignment="Stretch"/>
								<Border BorderBrush="#0F000000" BorderThickness="1" Background="#0F000000" CornerRadius="2.25" HorizontalAlignment="Stretch" Margin="-2" VerticalAlignment="Stretch"/>
								<Border BorderBrush="#0C000000" BorderThickness="1" Background="#0C000000" CornerRadius="2.5" HorizontalAlignment="Stretch" Margin="-3" VerticalAlignment="Stretch"/>
								<Border BorderBrush="#0A000000" BorderThickness="1" Background="#0A000000" CornerRadius="2.75" HorizontalAlignment="Stretch" Margin="-4" VerticalAlignment="Stretch"/>
								<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="#FFFFFFFF" 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>
											<Grid.RowDefinitions>
												<RowDefinition Height="Auto"/>
												<RowDefinition/>
											</Grid.RowDefinitions>
											<Border x:Name="Chrome" BorderBrush="#FFFFFFFF" BorderThickness="0,0,0,1" Width="Auto">
												<Border.Background>
													<LinearGradientBrush EndPoint="0.5,0.528" StartPoint="0.5,0">
														<GradientStop Color="#FFE5E8EB" Offset="1"/>
														<GradientStop Color="#FF813333" Offset="0"/>
													</LinearGradientBrush>
												</Border.Background>
												<Grid Height="Auto" Width="Auto">
													<Grid.Background>
														<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
															<GradientStop Color="#FF959131" Offset="0"/>
															<GradientStop Color="#FFE5E293" Offset="1"/>
														</LinearGradientBrush>
													</Grid.Background>
													<Grid.ColumnDefinitions>
														<ColumnDefinition/>
														<ColumnDefinition Width="30"/>
													</Grid.ColumnDefinitions>
													<ContentControl Content="{TemplateBinding Title}" FontWeight="Bold" HorizontalAlignment="Stretch" IsTabStop="False" Margin="6,0,6,0" VerticalAlignment="Center" Height="41"/>
													<Button x:Name="CloseButton" Grid.Column="1" HorizontalAlignment="Center" Height="14" IsTabStop="False" Style="{StaticResource ButtonStyle}" VerticalAlignment="Center" Width="15"/>
												</Grid>
											</Border>
											<Border Background="{TemplateBinding Background}" Margin="7" Grid.Row="1">
												<ContentPresenter x:Name="ContentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
											</Border>
										</Grid>
									</Border>
								</Border>
							</Grid>
						</Grid>
					</ControlTemplate>
				</Setter.Value>
			</Setter>
		</Style>
	</controls:ChildWindow.Resources>
	<controls:ChildWindow.Style>
		<StaticResource ResourceKey="ChildWindowStyle1"/>
	</controls:ChildWindow.Style>
    <Grid x:Name="LayoutRoot" Margin="2">
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>

        <Button x:Name="CancelButton" Content="取消" Click="CancelButton_Click" Width="75" Height="23" HorizontalAlignment="Right" Margin="0,12,0,0" Grid.Row="1" />
        <Button x:Name="OKButton" Content="确定" Click="OKButton_Click" Width="75" Height="23" HorizontalAlignment="Right" Margin="0,12,79,0" Grid.Row="1" />
    </Grid>
</controls:ChildWindow>

  

 

 

 

 

 

posted on 2013-09-06 11:20  longta  阅读(439)  评论(0编辑  收藏  举报