WPF的ChildWindow

WPF不像Silverlight中有直接的ChildWindow,所以一般设置子窗口的时候,我们通常想到的是使用UserControl,今日看到别人早有贴出帖子,添加引用使用微软的子窗口:

 

      <extToolkit:ChildWindow x:Name="childWindow" Visibility="Visible" Height="800" Width="1100"  Background="Transparent"
                               CloseButtonVisibility="Collapsed" WindowBackground="Black" WindowOpacity="0.92"  BorderThickness="0" BorderBrush="Black" Caption="" ClipToBounds="False" Focusable="False" IsHitTestVisible="False" IsManipulationEnabled="True" IsModal="True">
            <Grid Background="Black" Opacity="1" >
                <Grid Margin="90" ClipToBounds="False">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="70"/>
                        <RowDefinition Height="100"/>
                        <RowDefinition/>
                    </Grid.RowDefinitions>
                    <StackPanel Orientation="Horizontal" Grid.Row="0">
                        <Image  HorizontalAlignment="Left"  Height="64" Width="64" Name="image1" Stretch="Fill" VerticalAlignment="Bottom"
                            Source="/Yeylol.NetworkSettings;component/Styles/Images/btn_back.png" />
                        <Label Content="Password"  HorizontalAlignment="Left" Margin="20,0,0,0" Foreground="White" FontSize="42" Name="label1"
                           VerticalAlignment="Bottom" />
                    </StackPanel>
                    <Grid Grid.Row="1">
                        <Border CornerRadius="7" Width="765" Height="43" Margin="30,0,0,0" BorderThickness="1" BorderBrush="#FF737070" Background="Silver">
                            <StackPanel Orientation="Horizontal" Background="{x:Null}" >
                                <PasswordBox  Height="35" HorizontalAlignment="Left" Name="txtPassword" Margin="4" VerticalAlignment="Center" Width="700"
                                 Background="White" Padding="5" FontSize="18"/>
                                <Button Content="OK" Height="35" Name="btnOK" Width="50" Foreground="White">
                                    <Button.Template>
                                        <ControlTemplate>
                                            <Rectangle>
                                                <Rectangle.Fill>
                                                    <VisualBrush>
                                                        <VisualBrush.Visual>
                                                            <StackPanel>
                                                                <StackPanel.Background>
                                                                    <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1" >
                                                                        <GradientStop Color="#414457" Offset="0.5" />
                                                                        <GradientStop Color="#1D1E33" Offset="0.5" />
                                                                    </LinearGradientBrush>
                                                                </StackPanel.Background>
                                                                <TextBlock FontSize="20" Margin="15,10">OK</TextBlock>
                                                            </StackPanel>
                                                        </VisualBrush.Visual>
                                                    </VisualBrush>
                                                </Rectangle.Fill>
                                            </Rectangle>
                                        </ControlTemplate>
                                    </Button.Template>

                                </Button>
                            </StackPanel>
                        </Border>
                    </Grid>

                
                    <Grid Grid.Row="2" Margin="0,100,0,0"  Opacity="1" >


                    </Grid>
                </Grid>

            </Grid>
        </extToolkit:ChildWindow>

不过此窗口不能像silverlight的子窗口那样可以设置窗口的样式:WindowStyle="none",此处只能隐藏掉关闭按钮,窗口的样式设置颜色后,跟存放控件的内容部分还有有一个白色的边,我设置了很久都没设置掉,不知道是不是本人技术不行,索性添加一个Window作为子窗口使用模态,样式也好设置,在mvvm中也不用那么麻烦的传值。

经验在于积累,没解决一个问题都需要总结小小,这样才会进步,希望大家多多指教,有不足之处敬请赐教

 

 

posted @ 2012-03-02 18:50  静艳  阅读(809)  评论(0编辑  收藏  举报