精华内容
下载资源
问答
  • WPF 不规则窗体

    2015-10-20 22:14:21
    ,210,149,232" Text="第一个WPF应用程序界面"  TextWrapping="Wrap" FontSize="26.667" RenderTransformOrigin="0.476,0.5" Foreground="#FFF7F7F2"/> 后台: private void Button1_Click...

    前台:

    <Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="Example3_1.MainWindow"
    x:Name="Window"
    Width="640" Height="480" AllowsTransparency="True" WindowStyle="None" 
    Background="{x:Null}" WindowStartupLocation="CenterScreen">


    <Grid x:Name="LayoutRoot">
    <Ellipse Stroke="Black" Margin="47,118,33,117">
    <Ellipse.Fill>
    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
    <GradientStop Color="Red " Offset="0"/>
    <GradientStop Color="Black" Offset="1"/>
    </LinearGradientBrush>
    </Ellipse.Fill>
    </Ellipse>
    <Button x:Name="Button1" Margin="282,0,283,174" VerticalAlignment="Bottom" 
     Height ="25" Content="退 出" FontFamily="宋体" Click="Button1_Click" Cursor="Hand"/>
    <TextBlock x:Name="text1" Margin="174,210,149,232" Text="第一个WPF应用程序界面"
     TextWrapping="Wrap" FontSize="26.667" RenderTransformOrigin="0.476,0.5" Foreground="#FFF7F7F2"/>
    </Grid>
    </Window>


    后台:

    private void Button1_Click(object sender, System.Windows.RoutedEventArgs e)
    {
    Application.Current.Shutdown ();


    }

    展开全文
  • wpf 不规则窗体

    2010-02-23 20:29:00
    WPF布局(1)-简单不规则窗体 来源 http://www.cnblogs.com/jyz/articles/1286853.html 如果想制作一个不规则形状的窗体可以采取以下步骤: 1、设置窗体属性 this.WindowStyle = WindowStyle.None;//设置成...

    WPF布局(1)-简单不规则窗体

    如果想制作一个不规则形状的窗体可以采取以下步骤:

    1、设置窗体属性

    this.WindowStyle = WindowStyle.None;//设置成无边框形式
    this.Background = null;//设置背景色为空(即黑色)。
    this.AllowsTransparency = true;//设置窗体允许透明,这样我们就可以通过透明度:Opacity或者Opacitymask 对它进行透明度设置。

    2、设置一个border作为窗体的content

    如:

     Border m_border = new Border();

    this.Content = m_border;//设置border内容
     m_border.CornerRadius = new CornerRadius(10);//设置Borer圆角

    m_border.Background = Brushes.White;//设置border背景色
    m_border.BorderBrush = Brushes.Linen;//设置border边框颜色
    m_border.BorderThickness = new Thickness(3);//设置border边框厚度

    3、窗体的拖动

    WPF提供了DragMove方法,只须在相应某控件的MouseLeftButton事件函数中调用此函数即可,实现窗体的拖动。

    4、窗体的关闭

    由于此窗体为None,无边框形式,所以可以制作一个小的按钮作为关闭按钮,点击时相应this.Close方法即可。


    wpf 生成不规则窗体

     

    来源:http://www.cnblogs.com/DragonInSea/archive/2009/04/10/1432956.html

     

    使用异形窗体,可以将窗体的背景设置为透明,边框设置为空,然后利用控件做出异形的窗体,例如:

    另外,还要把窗体背景设置为 null, Background="{x:Null}"

    XAML:

       1: <Window x:Class="WpfWindow.CustomerWindow"
       2:     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       3:     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       4:     Title="NonRectangularWindowSample" SizeToContent="WidthAndHeight" 
       5:     MouseLeftButtonDown="NonRectangularWindow_MouseLeftButtonDown"
       6:     WindowStyle="None" 
       7:     AllowsTransparency="True" 
       8:     Background="Transparent">
       9:     <Canvas Width="200" Height="200" >
      10:         <Path Stroke="DarkGray" StrokeThickness="2">
      11:             <Path.Fill>
      12:                 <LinearGradientBrush StartPoint="0.2,0" EndPoint="0.8,1" >
      13:                     <GradientStop Color="White"  Offset="0"></GradientStop>
      14:                     <GradientStop Color="White"  Offset="0.45"></GradientStop>
      15:                     <GradientStop Color="LightBlue" Offset="0.9"></GradientStop>
      16:                     <GradientStop Color="Gray" Offset="1"></GradientStop>
      17:                 </LinearGradientBrush>
      18:             </Path.Fill>
      19:             <Path.Data>
      20:                 <PathGeometry>
      21:                     <PathFigure StartPoint="40,20" IsClosed="True">
      22:                         <LineSegment Point="160,20"></LineSegment>
      23:                         <ArcSegment Point="180,40" Size="20,20" SweepDirection="Clockwise"></ArcSegment>
      24:                         <LineSegment Point="180,80"></LineSegment>
      25:                         <ArcSegment Point="160,100" Size="20,20" SweepDirection="Clockwise"></ArcSegment>
      26:                         <LineSegment Point="90,100"></LineSegment>
      27:                         <LineSegment Point="90,150"></LineSegment>
      28:                         <LineSegment Point="60,100"></LineSegment>
      29:                         <LineSegment Point="40,100"></LineSegment>
      30:                         <ArcSegment Point="20,80" Size="20,20" SweepDirection="Clockwise"></ArcSegment>
      31:                         <LineSegment Point="20,40"></LineSegment>
      32:                         <ArcSegment Point="40,20" Size="20,20" SweepDirection="Clockwise"></ArcSegment>
      33:                     </PathFigure>
      34:                 </PathGeometry>
      35:             </Path.Data>
      36:         </Path>
      37:         <Label Width="200" Height="120" FontSize="15" HorizontalContentAlignment="Center" 
    VerticalContentAlignment="Center">Drag Me</Label>
      38:         <Button Canvas.Left="155" Canvas.Top="30" Click="closeButtonRectangle_Click">
      39:             <Button.Template>
      40:                 <ControlTemplate>
      41:                     <Canvas>
      42:                         <Rectangle Width="15" Height="15" Stroke="Black" RadiusX="3" RadiusY="3">
      43:                             <Rectangle.Fill>
      44:                                 <SolidColorBrush x:Name="myAnimatedBrush" Color="Red" />
      45:                             </Rectangle.Fill>
      46:                         </Rectangle>
      47:                         <Line X1="3" Y1="3" X2="12" Y2="12" Stroke="White" StrokeThickness="2"></Line>
      48:                         <Line X1="12" Y1="3" X2="3" Y2="12" Stroke="White" StrokeThickness="2"></Line>
      49:                     </Canvas>
      50:                 </ControlTemplate>
      51:             </Button.Template>
      52:         </Button>
      53:     </Canvas>
      54: </Window>
    展开全文
  • WPF不规则窗体的应用工程样例 framework4.0 visual2010
  • [小结][N种方法]实现WPF不规则窗体 原文:[小结][N种方法]实现WPF不规则窗体WPF实现不规则窗体,方法很多很多多.... 本文总结DebugLZQ认为简洁高效的几种方法 实现WPF不规则窗体的几种常用的方法...
    原文:[小结][N种方法]实现WPF不规则窗体

    WPF实现不规则窗体,方法很多很多多....

    本文总结DebugLZQ认为简洁高效的几种方法


    实现WPF不规则窗体的几种常用的方法如下:

      1.使用Blend等工具绘制一想要的窗体。这个可以参考xiaowei0705的这篇博文:WPF制作不规则的窗体 。

      2.给window的Clip属性赋Path值。这个可以参考DebugLZQ前面的博文:WPF Effect Clip以及Transform 

      3.使用透明背景的PNG图像。

      4.为Window主容器添加Border

      5.使用Blender制作想要的Path的说明。

      6.其他

    本文将要讲述的第一种方法,可以说一点技术含量都没有,基本不用动手编写代码。前提是你得有合适的透明背景的PNG图像。

    我们假设你已经完成了PNG图像的制作(当然为了演示的话,down一个也行),那么这个不规则窗体实现如下:

    <Window x:Class="WPFSharpWindow.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="412" Width="528" 
            AllowsTransparency="True" WindowStyle="None" OpacityMask="White" Background="Transparent">
        <Grid MouseLeftButtonDown="Grid_MouseLeftButtonDown">
            <Image Stretch="Fill" Source="/WPFSharpWindow;component/cow.png" />
        </Grid>
    </Window>

    解释下这个xaml需要注意的属性设置:

      allowstransparency="True" - 允许透明

      background="Transparent" - 设置背景透明

      windowstyle="None" - 去掉边框

      opacitymask="White" - 设置白色透明

    为Gird订阅的MouseLeftButtonDown路由事件,是为了实现窗体的拖动。事件处理如下:

    private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
       this.DragMove();
    }

    实现效果如下:

    效果不清楚?再来两张

    题外话:越来越发现发到博客园首页的博文质量是越来越差了,很多文章根本没有一点价值,纯垃圾~

    真心建议发到首页的博文,希望博文的作者能够花点时间,分享有价值的东西,不要哗众取宠~试想:你发到首页的博文你自己以后都不愿意去看的,何况别人?也希望博客园团队加强监管力度!

    我们写博文的目的是为了分享,分享本来就是一种积累,写博文的过程可以看做是一种沉淀,所以这是一个双赢的事。个人愚见,欢迎批评指正~

     “只要人人都献出一点爱,世界将变成美好的人间...”

    -------------

    需要运行时更新窗体样式怎么办?即更新图片即可:

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        var uriSource = new Uri(@"/WPFSharpWindow;component/HotPot.png", UriKind.Relative);
        imgBackground.Source=new BitmapImage(uriSource);
    }


    4. 为Window主容器添加Border

    和前面DebugLZQ博文使用Clip属性类似,我们可以为Window的顶层容器添加Border来实现。

    这种方法,对Border的编写有要求,而对其使用的Image、容器内容等没有要求。

    下面给出一个例子

    MainWindow.xaml如下:

    <Window x:Class="WPFWindowAnimation.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525"
             AllowsTransparency="True" WindowStyle="None" Background="Transparent"
            MouseLeftButtonDown="Window_MouseLeftButtonDown">
        <Border CornerRadius="0,30,40,50" Width="Auto" Height="Auto" BorderThickness="1" BorderBrush="Green">
            <Border.Background>
                <ImageBrush ImageSource="Tulips.jpg"/>
            </Border.Background>
              <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition />
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>
                <TextBlock  Grid.Row="0" Margin="5" Text="Title" />
                <Grid Grid.Row="1"  />
                <TextBlock Margin="1,10,1,1" Grid.Row="2" Text="Footer" Padding="5" HorizontalAlignment="Center"/>
              </Grid>
        </Border>
    </Window>

    效果如下:

    当然,如果我只是期待的是一个颜色背景的话,可以直接设置Border的Fill属性来获得。

    tip1:关于窗口的DragMove:只要在MouseLeftButtonDown事件中调用this.DragMove();

    tip2:关于窗口的Resize:通过设置Window的属性:如ResizeMode="CanResizeWithGrip"来实现。

    tip3:关于窗口的关闭、最大化、最小化等:通过在容器中添加Button,为其添加合适的样式,通过Button的Click事件来实现。

         this.Close();
                this.WindowState = System.Windows.WindowState.Maximized;
                this.WindowState = System.Windows.WindowState.Minimized;


    5.方法1,2的实现关键---Path的制作

    这个方法1,2中都没有讲述Path是如何制作的,因此这里有必要再说明下:

    制作Path一般有2中方法:

    1.使用所谓的"路径描述语言",即Path的包含有M、L、C、Z等Data属性值的书写方式。这种方法的优点是Path描述干净清爽;缺点是实现方法相对复杂一点。

    2.使用Blender。缺点是Path描述复杂;但优点是使用方便,能“拖拽”出各种Path。

    下面我们使用Blender来制作1个Path。

    我们向Window上添加1个Rectangle和1个Triangle.

    拖动调整下,如下:

    注意此时,生成的xaml并不是Path。

    把这两个Element组合起来,如下:

    则效果如下:

    此时,生成的xaml已经是Path了。

    ------------------

    也可先生成Path

    然后把生成的2个Path组合起来,效果和上面相同。

    当然也可以选中页面元素右击,....,这些都是Blend的具体操作了,不是本文的主要说明对象~

    ----------------------

    然后就可以使用这个Path,来方便的制作Path型的窗体了。如下:

    <Window
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:local="clr-namespace:WPFNavigationPanelPro"
            xmlns:ec="http://schemas.microsoft.com/expression/2010/controls" xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing" x:Class="WPFNavigationPanelPro.MainWindow"
            Title="MainWindow" Height="444" Width="559" WindowStyle="None" AllowsTransparency="True" Background="Transparent">
        <Grid>
            <Path Data="M137.333,1 L167.333,31.000003 277.333,31.000003 277.333,177.33299 1,177.33299 1,31.000003 107.333,31.000003 z" Fill="Green" Margin="102.667,16,106,84.117" Stretch="Fill" Stroke="Transparent" StrokeThickness="2"/>
            <WrapPanel Margin="115,94,119,116">
                <Rectangle Fill="Red" Width="60" Height="40" Margin="10"/>
                <Rectangle Fill="Red" Width="60" Height="40" Margin="10"/>
                <Rectangle Fill="Red" Width="60" Height="40" Margin="10"/>
                <Rectangle Fill="Red" Width="60" Height="40" Margin="10"/>
                <Rectangle Fill="Red" Width="60" Height="40" Margin="10"/>
            </WrapPanel>
            
        </Grid>
    </Window>

    运行效果如下:

    (说明:之所以做成Path是因为:简洁一点。完全可以拖出来想要的界面直接使用~)

    又如:

    <Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        x:Class="WindowTest.MainWindow"
        x:Name="Window"
        Title="MainWindow"
        Width="640" Height="552" WindowStyle="None" AllowsTransparency="True" Background="Transparent">
        <Grid x:Name="LayoutRoot">
            <Path Data="M144,0.5 C220.77621,0.5 283.46991,22.348854 287.31326,49.824082 L287.38416,50.5 287.5,50.5 287.5,52.499997 287.5,232.5 C287.5,251.27768 223.25287,266.5 144,266.5 64.747139,266.5 0.5,251.27768 0.5,232.5 L0.5,52.499997 0.5,50.5 0.61584973,50.5 0.6867221,49.824082 C4.5301003,22.348854 67.223793,0.5 144,0.5 z"  Stretch="Fill" Stroke="Black" Opacity="0.5" Margin="0,0,0,1">
                <Path.Fill>
                    <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                        <GradientStop Offset="0" Color="Violet"/>
                        <GradientStop Offset="1" Color="LightGreen"/>
                    </LinearGradientBrush>
                </Path.Fill>
            </Path>
            <Border BorderBrush="Pink" BorderThickness="1" Margin="0,102,0,69" Opacity="0.3">
                <Grid Margin="8,106.5,8,72.5" />
            </Border>
        </Grid>
    </Window>

    效果如下:

    通过Blend可以制作出你能想到的各种所谓不规则窗体~

    6.其他

     

    小结:在各种方法实现WPF不规则窗体的方法种,Blender来制作Path这种方法最灵活强大~ 


    Wish it helps.

     

    posted on 2015-04-10 12:08 NET未来之路 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/lonelyxmas/p/4414182.html

    展开全文
  • 实现WPF不规则窗体的三种常用的方法如下: 1.使用Blend等工具绘制一个不规则xaml,然后作为窗体的背景。这个可以参考xiaowei0705的这篇博文:WPF制作不规则的窗体。 2.给window的Clip属性赋Path值。这个可以参考...

    实现WPF不规则窗体的三种常用的方法如下:

    1.使用Blend等工具绘制一个不规则xaml,然后作为窗体的背景。这个可以参考xiaowei0705的这篇博文:WPF制作不规则的窗体 。

    2.给window的Clip属性赋Path值。这个可以参考DebugLZQ前面的博文:WPF Effect Clip以及Transform 

    3.使用透明背景的PNG图像。本文将要讲述。

    本文将要讲述的这种方法,可以说一点技术含量都没有,基本不用动手编写代码。前提是你得有合适的透明背景的PNG图像。

    我们假设你已经完成了PNG图像的制作(当然为了演示的话,down一个也行),那么这个不规则窗体实现如下:

    复制代码
    <Window x:Class="WPFSharpWindow.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="412" Width="528" 
            AllowsTransparency="True" WindowStyle="None" OpacityMask="White" Background="Transparent">
        <Grid MouseLeftButtonDown="Grid_MouseLeftButtonDown">
            <Image Stretch="Fill" Source="/WPFSharpWindow;component/cow.png" />
        </Grid>
    </Window>
    复制代码

    解释下这个xaml需要注意的属性设置:

      allowstransparency="True" - 允许透明

      background="Transparent" - 设置背景透明

      windowstyle="None" - 去掉边框

      opacitymask="White" - 设置白色透明

    为Gird订阅的MouseLeftButtonDown路由事件,是为了实现窗体的拖动。事件处理如下:

    private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
       this.DragMove();
    }

    实现效果如下:

    效果不清楚?再来两张

    题外话:越来越发现发到博客园首页的博文质量是越来越差了,很多文章根本没有一点价值,纯垃圾~

    真心建议发到首页的博文,希望博文的作者能够花点时间,分享有价值的东西,不要哗众取宠~试想:你发到首页的博文你自己以后都不愿意去看的,何况别人?也希望博客园团队加强监管力度!

    我们写博文的目的是为了分享,分享本来就是一种积累,写博文的过程可以看做是一种沉淀,所以这是一个双赢的事。个人愚见,欢迎批评指正~

     “只要人人都献出一点爱,世界将变成美好的人间...”

    Update:

    需要运行时更新窗体样式怎么办?即更新图片即可:

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        var uriSource = new Uri(@"/WPFSharpWindow;component/HotPot.png", UriKind.Relative);
        imgBackground.Source=new BitmapImage(uriSource);
    }

     

    原文地址:http://www.cnblogs.com/DebugLZQ/archive/2013/05/16/3081802.html

    转载于:https://www.cnblogs.com/weikai/archive/2013/06/15/3137154.html

    展开全文
  • vb.net wpf不规则窗体

    千次阅读 2013-06-22 11:11:41
    1新建一个wpf程序Mainwindows的windowstyle属性为None设置background为Transparent   2向窗体中加入一个rectamgle控件   3选择fill属性进行背景颜色的填充   4在属性中设置RadiusX和RadiusY数值为9   5...
  • 最近项目中要完成一个无框窗体的界面。主要想自己吧窗体做的更漂亮。想zune一样。先来个图。看下是什么样子吧。... 这样当然可以做出无框的不规则窗体。但是后来发现如果我的窗体这么弄。窗体中的 Frame 无...
  • 最近项目中要完成一个无框窗体的界面。主要想自己吧窗体做的更漂亮。想zune一样。先来个图。看下是什么样子吧。...这样当然可以做出无框的不规则窗体。但是后来发现如果我的窗体这么弄。窗体中的 Frame 无...
  • wpf siverlight 不规则窗体布局
  • 不规则窗体

    2013-06-22 11:12:24
    wpf不规则窗体
  • 不规则窗体WPF

    2013-10-19 23:27:58
    不规则窗体 WPF应用案例.
  • 本文实例讲述了WPF不规则窗体与WindowsFormsHost控件兼容问题的解决方法。分享给大家供大家参考。具体方法如下: 这里首先说明一下,有关WPF不规则窗体与WindowsFormsHost控件不兼容的问题,网上给出的很多解决...
  • WPF不规则窗体

    千次阅读 2013-10-28 13:56:28
    今天总结了一下 用WPF不规则窗体的列子,在分享例子之前,先解释几个WPF中常用的标签含义: 1.:表示线性渐变绘制区域,线性渐变沿着直线定义界面,该直线的起点和终点有startPoint和endPiont定义,默认是沿着对角...
  • WPF实现的一个不规则窗体的实例,WPF实现的一个不规则窗体的实例,
  • WPF设计の不规则窗体

    2018-11-11 13:22:00
    WPF设计の不规则窗体 原文:WPF设计の不规则窗体 我们在工作中,经常会需要画一些不规则的窗体,现在总结如下。 一、利用VisualBrush实现。这依赖于VisualBrush的特性,任何控件可以作为画刷,而画刷...
  • WPF不规则窗体与WindowsFormsHost控件的兼容问题完美解决方案 原文:WPF不规则窗体与WindowsFormsHost控件的兼容问题完美解决方案 首先先得瑟一下,有关WPF不规则窗体与Windows...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 149
精华内容 59
关键字:

wpf不规则窗体