一、Panel内容模型
Panel内容模型指从System.Windows.Controls.Panel继承的控件,这些控件都是容器,可以在内部承载其他的控件和子容器。Panel内容模型包含的容器有:
•Canvas
•DockPanel
•Grid
•TabPanel
•ToolBarOverflowPanel
•UniformGrid
•StackPanel
•ToolBarPanel
•VirtualizingPanel
•VirtualizingStackPanel
•WrapPanel
对于Panel模型,其包含一个Children属性,表示其所有的子控件和子容器的集合,在XAML代码中可以省略<XXX.Children>标记.
二、Decorator内容模型
Decorator内容模型指的是从System.Windows.Controls.Decorator类继承的控件,主要是对其中的一个子元素的边缘进行修饰。Decorator模型的主要控件包含:
•AdornerDecorator
•Border
•BulletDecorator
•ButtonChrome
•ClassicBorderDecorator
•InkPresenter
•ListBoxChrome
•SystemDropShadowChrome
•Viewbox
Decorator模型包含一个Child属性,表示其包含的一个子元素(注意,只能是一个子元素(控件或容器,在容器中可以再添加其他的控件)),Child属性的XAML标记可以省略。
例如,对于一个TextBox添加一个边框,使用XAML语言定义
三、TextBlock模型
TextBlock模型实际上指的就是System.Windows.Controls.TextBlock类,它是一个用于显示少量流内容的轻量控件。其中包含一个InLines属性,支持 Inline 流内容元素的承载和显示。 支持的元素包括 AnchoredBlock、Bold(粗体字符串)、Hyperlink(超链接,在浏览器支持的模式下有效)、InlineUIContainer(承载其他控件的容器)、Italic(斜体字符串)、LineBreak(换行符)、Run(普通字符串)、Span(可以设置字体、颜色等的Span) 和 Underline(下划线)。
四、TextBox模型
System.Windows.Controls.TextBox类,实现的是可编辑的文本框,文本框的内容由字符串类型的Text属性指定,并且整个TextBox的内容使用共同的(即TextBox指定的)样式。
代码如下:
<Window x:Class="WpfApplication1.Panel内容模型"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Panel内容模型" Height="300" Width="300" Loaded="Window_Loaded">
<StackPanel Name="mainPanel">
<StackPanel Name="panelA">
<StackPanel.Children>
<Button>Button A</Button>
</StackPanel.Children>
</StackPanel>
<Button>Button B</Button>
<StackPanel Name="panelB">
</StackPanel>
<TextBlock Text="Decorator内容模型" HorizontalAlignment="Center"></TextBlock>
<!--Decorator内容模型 对于一个TextBox添加一个边框,使用XAML语言定义-->
<StackPanel Name="mainPane2">
<Border BorderThickness="5" BorderBrush="DarkBlue" Margin="5">
<Border.Child>
<TextBox Text="TextBox Content"/>
</Border.Child>
</Border>
</StackPanel>
</StackPanel>
</Window>
C# 代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for Panel内容模型.xaml
/// </summary>
public partial class Panel内容模型 : Window
{
public Panel内容模型()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
// 定义一个Button
Button btn = new Button();
btn.Content = "Button C";
// 将Button添加到StackPanel中
panelB.Children.Add(btn);
//获得Decorator内容模型
getContentModel();
}
private void getContentModel()
{
// 定义一个Border对象,并设置其边框的大小,颜色,外边距
Border border = new Border();
border.BorderThickness = new Thickness(5);
border.BorderBrush = new SolidColorBrush(Colors.DarkRed);
border.Margin = new Thickness(5);
// 定义一个TextBox对象
TextBox textBox = new TextBox();
textBox.Text = "TextBox Content Text";
// 使用Border修饰TextBox的边框
border.Child = textBox;
// 将Border添加到StackPanel中
mainPane2.Children.Add(border);
}
}
}
TextBlock 演示代码如下:
<Window x:Class="WpfApplication1.TextBlock模型"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="TextBlock模型" Height="300" Width="300">
<StackPanel Orientation="Horizontal">
<Border BorderThickness="2" Margin="5" BorderBrush="Black">
<TextBlock Margin="5" TextWrapping="WrapWithOverflow">
<TextBlock.Inlines>
<Bold>
<Run>BlockText 控件XAML示例</Run>
</Bold>
<!--换行-->
<LineBreak/>
<Run>TextBlock支持以下的几种流显示样式:</Run>
<LineBreak/>
<Bold>粗体(Bold)</Bold>
<LineBreak/>
<Italic>斜体(Italic)</Italic>
<LineBreak/>
<Underline>下划线(Underline)</Underline>
<LineBreak/>
<Hyperlink NavigateUri="http://www.baidu.com">超链接</Hyperlink>
<LineBreak/>
<Span Foreground="Red" FontSize="18">Span设置字体、颜色等</Span>
<LineBreak />
<InlineUIContainer>
<StackPanel Background="AntiqueWhite" Margin="5">
<TextBlock>Inline UI 容器</TextBlock>
<Button Content="按钮" Width="80" />
</StackPanel>
</InlineUIContainer>
</TextBlock.Inlines>
</TextBlock>
</Border>
<Border BorderThickness="2" Margin="5" BorderBrush="Black">
<TextBlock Margin="5" TextWrapping="WrapWithOverflow" x:Name="textBlock">
<TextBlock.Inlines>
<Bold>
<Run x:Name="title"></Run>
</Bold>
<LineBreak x:Name="line"/>
<InlineUIContainer x:Name="container">
<StackPanel Background="AntiqueWhite" Margin="5" x:Name="panel">
</StackPanel>
</InlineUIContainer>
</TextBlock.Inlines>
</TextBlock>
</Border>
</StackPanel>
</Window>
C# 代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for TextBlock模型.xaml
/// </summary>
public partial class TextBlock模型 : Window
{
public TextBlock模型()
{
InitializeComponent();
// 设置Inline对象的属性值
title.Text = "TextBlock 控件代码示例";
// 添加Inline对象
Run content = new Run("TextBlock支持以下的几种流显示样式:");
Bold bold = new Bold(new Run("粗体"));
Italic italic = new Italic(new Run("斜体"));
Underline underline = new Underline(new Run("下划线"));
Hyperlink hyperlink = new Hyperlink(new Run("超链接"));
hyperlink.NavigateUri = new Uri("http://www.microsoft.com");
Span span = new Span(new Run("Span设置字体、颜色等"));
span.Foreground = new SolidColorBrush(Colors.Green);
span.FontSize = 18;
textBlock.Inlines.InsertBefore(container, content);
textBlock.Inlines.InsertBefore(container, new LineBreak());
textBlock.Inlines.InsertBefore(container, bold);
textBlock.Inlines.InsertBefore(container, new LineBreak());
textBlock.Inlines.InsertBefore(container, italic);
textBlock.Inlines.InsertBefore(container, new LineBreak());
textBlock.Inlines.InsertBefore(container, underline);
textBlock.Inlines.InsertBefore(container, new LineBreak());
textBlock.Inlines.InsertBefore(container, hyperlink);
textBlock.Inlines.InsertBefore(container, new LineBreak());
textBlock.Inlines.InsertBefore(container, span);
textBlock.Inlines.InsertBefore(container, new LineBreak());
// 设置InlineUIContainer的成员
panel.Children.Add(new TextBlock(new Run("InlineUIContainer")));
Button button = new Button();
button.Content = "Button";
button.Width = 80;
panel.Children.Add(button);
}
}
}
Panel内容模型指从System.Windows.Controls.Panel继承的控件,这些控件都是容器,可以在内部承载其他的控件和子容器。Panel内容模型包含的容器有:
•Canvas
•DockPanel
•Grid
•TabPanel
•ToolBarOverflowPanel
•UniformGrid
•StackPanel
•ToolBarPanel
•VirtualizingPanel
•VirtualizingStackPanel
•WrapPanel
对于Panel模型,其包含一个Children属性,表示其所有的子控件和子容器的集合,在XAML代码中可以省略<XXX.Children>标记.
二、Decorator内容模型
Decorator内容模型指的是从System.Windows.Controls.Decorator类继承的控件,主要是对其中的一个子元素的边缘进行修饰。Decorator模型的主要控件包含:
•AdornerDecorator
•Border
•BulletDecorator
•ButtonChrome
•ClassicBorderDecorator
•InkPresenter
•ListBoxChrome
•SystemDropShadowChrome
•Viewbox
Decorator模型包含一个Child属性,表示其包含的一个子元素(注意,只能是一个子元素(控件或容器,在容器中可以再添加其他的控件)),Child属性的XAML标记可以省略。
例如,对于一个TextBox添加一个边框,使用XAML语言定义
三、TextBlock模型
TextBlock模型实际上指的就是System.Windows.Controls.TextBlock类,它是一个用于显示少量流内容的轻量控件。其中包含一个InLines属性,支持 Inline 流内容元素的承载和显示。 支持的元素包括 AnchoredBlock、Bold(粗体字符串)、Hyperlink(超链接,在浏览器支持的模式下有效)、InlineUIContainer(承载其他控件的容器)、Italic(斜体字符串)、LineBreak(换行符)、Run(普通字符串)、Span(可以设置字体、颜色等的Span) 和 Underline(下划线)。
四、TextBox模型
System.Windows.Controls.TextBox类,实现的是可编辑的文本框,文本框的内容由字符串类型的Text属性指定,并且整个TextBox的内容使用共同的(即TextBox指定的)样式。
代码如下:
<Window x:Class="WpfApplication1.Panel内容模型"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Panel内容模型" Height="300" Width="300" Loaded="Window_Loaded">
<StackPanel Name="mainPanel">
<StackPanel Name="panelA">
<StackPanel.Children>
<Button>Button A</Button>
</StackPanel.Children>
</StackPanel>
<Button>Button B</Button>
<StackPanel Name="panelB">
</StackPanel>
<TextBlock Text="Decorator内容模型" HorizontalAlignment="Center"></TextBlock>
<!--Decorator内容模型 对于一个TextBox添加一个边框,使用XAML语言定义-->
<StackPanel Name="mainPane2">
<Border BorderThickness="5" BorderBrush="DarkBlue" Margin="5">
<Border.Child>
<TextBox Text="TextBox Content"/>
</Border.Child>
</Border>
</StackPanel>
</StackPanel>
</Window>
C# 代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for Panel内容模型.xaml
/// </summary>
public partial class Panel内容模型 : Window
{
public Panel内容模型()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
// 定义一个Button
Button btn = new Button();
btn.Content = "Button C";
// 将Button添加到StackPanel中
panelB.Children.Add(btn);
//获得Decorator内容模型
getContentModel();
}
private void getContentModel()
{
// 定义一个Border对象,并设置其边框的大小,颜色,外边距
Border border = new Border();
border.BorderThickness = new Thickness(5);
border.BorderBrush = new SolidColorBrush(Colors.DarkRed);
border.Margin = new Thickness(5);
// 定义一个TextBox对象
TextBox textBox = new TextBox();
textBox.Text = "TextBox Content Text";
// 使用Border修饰TextBox的边框
border.Child = textBox;
// 将Border添加到StackPanel中
mainPane2.Children.Add(border);
}
}
}
TextBlock 演示代码如下:
<Window x:Class="WpfApplication1.TextBlock模型"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="TextBlock模型" Height="300" Width="300">
<StackPanel Orientation="Horizontal">
<Border BorderThickness="2" Margin="5" BorderBrush="Black">
<TextBlock Margin="5" TextWrapping="WrapWithOverflow">
<TextBlock.Inlines>
<Bold>
<Run>BlockText 控件XAML示例</Run>
</Bold>
<!--换行-->
<LineBreak/>
<Run>TextBlock支持以下的几种流显示样式:</Run>
<LineBreak/>
<Bold>粗体(Bold)</Bold>
<LineBreak/>
<Italic>斜体(Italic)</Italic>
<LineBreak/>
<Underline>下划线(Underline)</Underline>
<LineBreak/>
<Hyperlink NavigateUri="http://www.baidu.com">超链接</Hyperlink>
<LineBreak/>
<Span Foreground="Red" FontSize="18">Span设置字体、颜色等</Span>
<LineBreak />
<InlineUIContainer>
<StackPanel Background="AntiqueWhite" Margin="5">
<TextBlock>Inline UI 容器</TextBlock>
<Button Content="按钮" Width="80" />
</StackPanel>
</InlineUIContainer>
</TextBlock.Inlines>
</TextBlock>
</Border>
<Border BorderThickness="2" Margin="5" BorderBrush="Black">
<TextBlock Margin="5" TextWrapping="WrapWithOverflow" x:Name="textBlock">
<TextBlock.Inlines>
<Bold>
<Run x:Name="title"></Run>
</Bold>
<LineBreak x:Name="line"/>
<InlineUIContainer x:Name="container">
<StackPanel Background="AntiqueWhite" Margin="5" x:Name="panel">
</StackPanel>
</InlineUIContainer>
</TextBlock.Inlines>
</TextBlock>
</Border>
</StackPanel>
</Window>
C# 代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for TextBlock模型.xaml
/// </summary>
public partial class TextBlock模型 : Window
{
public TextBlock模型()
{
InitializeComponent();
// 设置Inline对象的属性值
title.Text = "TextBlock 控件代码示例";
// 添加Inline对象
Run content = new Run("TextBlock支持以下的几种流显示样式:");
Bold bold = new Bold(new Run("粗体"));
Italic italic = new Italic(new Run("斜体"));
Underline underline = new Underline(new Run("下划线"));
Hyperlink hyperlink = new Hyperlink(new Run("超链接"));
hyperlink.NavigateUri = new Uri("http://www.microsoft.com");
Span span = new Span(new Run("Span设置字体、颜色等"));
span.Foreground = new SolidColorBrush(Colors.Green);
span.FontSize = 18;
textBlock.Inlines.InsertBefore(container, content);
textBlock.Inlines.InsertBefore(container, new LineBreak());
textBlock.Inlines.InsertBefore(container, bold);
textBlock.Inlines.InsertBefore(container, new LineBreak());
textBlock.Inlines.InsertBefore(container, italic);
textBlock.Inlines.InsertBefore(container, new LineBreak());
textBlock.Inlines.InsertBefore(container, underline);
textBlock.Inlines.InsertBefore(container, new LineBreak());
textBlock.Inlines.InsertBefore(container, hyperlink);
textBlock.Inlines.InsertBefore(container, new LineBreak());
textBlock.Inlines.InsertBefore(container, span);
textBlock.Inlines.InsertBefore(container, new LineBreak());
// 设置InlineUIContainer的成员
panel.Children.Add(new TextBlock(new Run("InlineUIContainer")));
Button button = new Button();
button.Content = "Button";
button.Width = 80;
panel.Children.Add(button);
}
}
}
发表评论
-
WPF学习之数据绑定
2011-10-24 20:16 1538WPF中的数据绑定提供了很强大的功能。与普通的WinForm程 ... -
使用Items属性
2011-10-20 16:45 1607随 WPF 附带的每个 ItemsControl 具有一个对应 ... -
ItemsControl模型
2011-10-20 16:41 1227从 ItemsControl 继承的控件包含一个对象集合。 I ... -
HeaderedContentControl模型
2011-10-20 16:39 1351HeaderedContentControl类继承Conten ... -
WPF内容控件详解
2011-10-20 16:37 2113一、ContentControl模型 ContentContr ... -
WPF控件内容模型
2011-10-20 16:30 1475WPF控件内容模型主要指派生于System.Windows.C ... -
创建你的第一个WPF项目
2011-10-10 16:47 2023WPF基础知识 快速学习绝 ... -
什么是WPF 及WPF的未来
2011-10-10 15:27 1650Windows Presentation Foundation ...
相关推荐
【Panel内容模型详解】 在WPF(Windows Presentation Foundation)中,Panel内容模型是构建用户界面的基础,它提供了布局管理的功能,允许开发者组织和控制UI元素的排列方式。Panel类是所有面板控件的基类,从...
Panel Data模型,也称为面板数据模型,是一种统计分析方法,常用于经济学、社会科学以及许多其他领域的研究。这种模型处理的是包含多个个体(如个人、公司、国家等)在多个时间点上的数据,能够同时考虑个体间和时间...
本文将详细解析"New Elhorst Panel Code.zip"中的内容,特别是与杜宾模型(Durbin Model)相关的MATLAB代码及其可能遇到的错误。 首先,我们来了解空间滞后模型(Spatial Lag Model)、空间误差模型(Spatial Error...
"Panel-Data模型EViews操作过程" Panel Data 模型是经济计量学中的一种重要模型,用于分析面板数据。EViews 是一种流行的经济计量学软件,提供了强大的数据分析和处理能力。本文档主要介绍了 Panel Data 模型在 ...
第十章Panel Data模型经济分析时,经常会遇到时间序列和横截面两者相结合的数据。例如,企业投资需求分析中,会遇到“多个企业的若干指标的不同月度或季度时间序
Panel 内容模型用于定义控件的布局,Decorator 提供了对容器内元素进行装饰的手段。TextBlock 是一个轻量级控件,用于显示不可编辑的文本,而 TextBox 是可编辑文本的标准控件。 ### 依赖项属性和路由事件 WPF 引入...
在提供的压缩包文件"sar_panel_FE"中,很可能包含MATLAB脚本或函数,用于实现以上所述的空间滞后模型分析。用户可能需要导入面板数据,构建空间权重矩阵,然后运行特定的MATLAB代码来估计模型。此外,输出结果可能...
EVIEWS面板数据分析操作教程之PanelData模型.pptx
### Panel、Decorator、TextBlock 内容模型 #### Panel内容模型 - **布局容器**:用于放置和定位控件。 #### Decorator内容模型 - **装饰器**:用于装饰其他控件。 #### TextBlock 模型 - **文本显示**:用于显示...
国际储备积累的国际比较:基于Panel Data模型的研究,田新时,张格,国际储备积累是伴随对外经济交往的发展而产生的一种经济现象。本文运用Panel Data模型**对全球33个重要国家的国际储备量进行建模拟合�
1. **Panel内容模型**:用于组织和布局多个子控件。 2. **Decorator内容模型**:用于装饰另一个控件,例如添加边框或阴影效果。 3. **TextBlock模型**:用于显示文本。 4. **TextBox模型**:用于编辑文本。 #### ...
- **Panel内容模型**:用于布局控件的容器。 - **Decorator内容模型**:用于装饰其他控件。 - **TextBlock模型**:用于显示文本。 - **TextBox模型**:用于编辑文本。 ### 依赖项属性和路由事件 - **依赖项属性**:...
Panel Decorator TextBlock内容模型............................ 44 一、Panel内容模型............................................ 44 二、Decorator内容模型........................................ 45 三、...
从标签"matlab STAR_Panel"我们可以推断,这个项目的核心是将STAR(State Dependence, Threshold, and Heterogeneity in Panel Data Models)模型应用于面板数据分析。STAR模型是一种处理非线性面板数据的方法,常...
中国城市化对城乡收入差距影响的实证研究——基于省际panel date模型的分析,饶斌,,城市化对城乡收入差距的影响历来是发展经济学争论的热点和难点,本文基于城市化与城乡收入差距的理论模型,利用1985年-2006年间...
Dynamic space measurement code based on matlab software
流程学习可能涉及到一系列的步骤,比如数据获取、预处理、模型构建,最后通过Panel将结果展示出来。这可以帮助我们更好地理解如何在实际场景中应用Panel。 6. **模板与素材的应用**:在创建Panel时,使用预设的模板...