PolyBezierSegment Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa uma ou mais curvas cúbicas de Bezier.
public ref class PolyBezierSegment sealed : System::Windows::Media::PathSegment
public sealed class PolyBezierSegment : System.Windows.Media.PathSegment
type PolyBezierSegment = class
inherit PathSegment
Public NotInheritable Class PolyBezierSegment
Inherits PathSegment
- Herança
Exemplos
O exemplo seguinte mostra como usar a PolyBezierSegment para desenhar duas curvas cúbicas de Bezier.
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel>
<Canvas>
<Path Stroke="Black" StrokeThickness="1">
<Path.Data>
<PathGeometry>
<PathGeometry.Figures>
<PathFigureCollection>
<!-- The StartPoint specifies the starting point of the first curve. -->
<PathFigure StartPoint="10,100">
<PathFigure.Segments>
<PathSegmentCollection>
<!-- The PolyBezierSegment specifies two cubic Bezier curves.
The first curve is from 10,100 (start point specified above)
to 300,100 with a control point of 0,0 and another control
point of 200,0. The second curve is from 300,100
(end of the last curve) to 600,100 with a control point of 300,0
and another control point of 400,0. -->
<PolyBezierSegment Points="0,0 200,0 300,100 300,0 400,0 600,100" />
</PathSegmentCollection>
</PathFigure.Segments>
</PathFigure>
</PathFigureCollection>
</PathGeometry.Figures>
</PathGeometry>
</Path.Data>
</Path>
</Canvas>
</StackPanel>
</Page>
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Shapes;
namespace SDKSample
{
public partial class PolyBezierSegmentExample : Page
{
public PolyBezierSegmentExample()
{
// Create a PathFigure to be used for the PathGeometry of myPath.
PathFigure myPathFigure = new PathFigure();
// Set the starting point for the PathFigure specifying that the
// geometry starts at point 10,100.
myPathFigure.StartPoint = new Point(10, 100);
// Create a PointCollection that holds the Points used to specify
// the points of the PolyBezierSegment below.
PointCollection myPointCollection = new PointCollection(6);
myPointCollection.Add(new Point(0, 0));
myPointCollection.Add(new Point(200, 0));
myPointCollection.Add(new Point(300, 100));
myPointCollection.Add(new Point(300, 0));
myPointCollection.Add(new Point(400, 0));
myPointCollection.Add(new Point(600, 100));
// The PolyBezierSegment specifies two cubic Bezier curves.
// The first curve is from 10,100 (start point specified by the PathFigure)
// to 300,100 with a control point of 0,0 and another control point
// of 200,0. The second curve is from 300,100 (end of the last curve) to
// 600,100 with a control point of 300,0 and another control point of 400,0.
PolyBezierSegment myBezierSegment = new PolyBezierSegment();
myBezierSegment.Points = myPointCollection;
PathSegmentCollection myPathSegmentCollection = new PathSegmentCollection();
myPathSegmentCollection.Add(myBezierSegment);
myPathFigure.Segments = myPathSegmentCollection;
PathFigureCollection myPathFigureCollection = new PathFigureCollection();
myPathFigureCollection.Add(myPathFigure);
PathGeometry myPathGeometry = new PathGeometry();
myPathGeometry.Figures = myPathFigureCollection;
// Create a path to draw a geometry with.
Path myPath = new Path();
myPath.Stroke = Brushes.Black;
myPath.StrokeThickness = 1;
// specify the shape (quadratic Bezier curve) of the path using the StreamGeometry.
myPath.Data = myPathGeometry;
// Add path shape to the UI.
StackPanel mainPanel = new StackPanel();
mainPanel.Children.Add(myPath);
this.Content = mainPanel;
}
}
}
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media
Imports System.Windows.Shapes
Namespace SDKSample
Partial Public Class PolyBezierSegmentExample
Inherits Page
Public Sub New()
' Create a PathFigure to be used for the PathGeometry of myPath.
Dim myPathFigure As New PathFigure()
' Set the starting point for the PathFigure specifying that the
' geometry starts at point 10,100.
myPathFigure.StartPoint = New Point(10, 100)
' Create a PointCollection that holds the Points used to specify
' the points of the PolyBezierSegment below.
Dim myPointCollection As New PointCollection(6)
myPointCollection.Add(New Point(0, 0))
myPointCollection.Add(New Point(200, 0))
myPointCollection.Add(New Point(300, 100))
myPointCollection.Add(New Point(300, 0))
myPointCollection.Add(New Point(400, 0))
myPointCollection.Add(New Point(600, 100))
' The PolyBezierSegment specifies two cubic Bezier curves.
' The first curve is from 10,100 (start point specified by the PathFigure)
' to 300,100 with a control point of 0,0 and another control point
' of 200,0. The second curve is from 300,100 (end of the last curve) to
' 600,100 with a control point of 300,0 and another control point of 400,0.
Dim myBezierSegment As New PolyBezierSegment()
myBezierSegment.Points = myPointCollection
Dim myPathSegmentCollection As New PathSegmentCollection()
myPathSegmentCollection.Add(myBezierSegment)
myPathFigure.Segments = myPathSegmentCollection
Dim myPathFigureCollection As New PathFigureCollection()
myPathFigureCollection.Add(myPathFigure)
Dim myPathGeometry As New PathGeometry()
myPathGeometry.Figures = myPathFigureCollection
' Create a path to draw a geometry with.
Dim myPath As New Path()
myPath.Stroke = Brushes.Black
myPath.StrokeThickness = 1
' specify the shape (quadratic Bezier curve) of the path using the StreamGeometry.
myPath.Data = myPathGeometry
' Add path shape to the UI.
Dim mainPanel As New StackPanel()
mainPanel.Children.Add(myPath)
Me.Content = mainPanel
End Sub
End Class
End Namespace
Observações
Use um PathFigure objeto para armazenar PolyBezierSegment objetos e outros segmentos.
Uma curva cúbica de Bézier é definida por quatro pontos: um ponto inicial, um ponto final e dois pontos de controlo. A PolyBezierSegment especifica uma ou mais curvas cúbicas de Bézier definindo a Points propriedade para uma coleção de pontos. Para cada três pontos na coleção, o primeiro e o segundo pontos especificam os dois pontos de controlo da curva e o terceiro ponto especifica o ponto final. Note que não é especificado nenhum ponto de início para a curva porque o ponto de início é o mesmo que o ponto final do último segmento.
Os dois pontos de controlo de uma curva cúbica de Bézier comportam-se como ímanes, atraindo partes do que de outra forma seria uma linha reta para si próprios e produzindo uma curva. O primeiro ponto de controlo afeta a parte inicial da curva; o segundo ponto de controlo afeta a parte final da curva. Note-se que a curva não passa necessariamente por nenhum dos pontos de controlo; Cada ponto de controlo move a sua parte da linha em direção a si, mas não através de si próprio.
Construtores
| Name | Description |
|---|---|
| PolyBezierSegment() |
Inicializa uma nova instância da PolyBezierSegment classe. |
| PolyBezierSegment(IEnumerable<Point>, Boolean) |
Inicializa uma nova instância da PolyBezierSegment classe com a coleção especificada de Point objetos e um valor que especifica se os segmentos são traçados. |
Campos
| Name | Description |
|---|---|
| PointsProperty |
Identifica a Points propriedade de dependência. |
Propriedades
| Name | Description |
|---|---|
| CanFreeze |
Obtém um valor que indica se o objeto pode ser tornado inmodificável. (Herdado de Freezable) |
| DependencyObjectType |
Obtém o DependencyObjectType que envolve o tipo CLR desta instância. (Herdado de DependencyObject) |
| Dispatcher |
Percebe o Dispatcher que isto DispatcherObject está associado. (Herdado de DispatcherObject) |
| HasAnimatedProperties |
Obtém um valor que indica se um ou mais AnimationClock objetos estão associados a alguma das propriedades de dependência deste objeto. (Herdado de Animatable) |
| IsFrozen |
Recebe um valor que indica se o objeto é atualmente modificável. (Herdado de Freezable) |
| IsSealed |
Recebe um valor que indica se esta instância está atualmente selada (apenas leitura). (Herdado de DependencyObject) |
| IsSmoothJoin |
Obtém ou define um valor que indica se a junção entre esta PathSegment e a anterior PathSegment é tratada como um canto quando é traçada com um Pen. (Herdado de PathSegment) |
| IsStroked |
Recebe ou define um valor que indica se o segmento é traçado. (Herdado de PathSegment) |
| Points |
Obtém ou conjunta os PointCollection que definem este PolyBezierSegment objeto. |
Métodos
| Name | Description |
|---|---|
| ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior) |
Aplica-se a AnimationClock um ao especificado DependencyProperty. Se a propriedade já estiver animada, utiliza-se a especificada HandoffBehavior . (Herdado de Animatable) |
| ApplyAnimationClock(DependencyProperty, AnimationClock) |
Aplica-se a AnimationClock um ao especificado DependencyProperty. Se a propriedade já estiver animada, utiliza-se o SnapshotAndReplace comportamento de handoff. (Herdado de Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior) |
Aplica uma animação ao especificado DependencyProperty. A animação é iniciada quando o frame seguinte é renderizado. Se a propriedade especificada já estiver animada, é usada a especificada HandoffBehavior . (Herdado de Animatable) |
| BeginAnimation(DependencyProperty, AnimationTimeline) |
Aplica uma animação ao especificado DependencyProperty. A animação é iniciada quando o frame seguinte é renderizado. Se a propriedade especificada já estiver animada, utiliza-se o SnapshotAndReplace comportamento de handoff. (Herdado de Animatable) |
| CheckAccess() |
Determina se o thread que chama tem acesso a este DispatcherObject. (Herdado de DispatcherObject) |
| ClearValue(DependencyProperty) |
Limpa o valor local de uma propriedade. A propriedade a ser limpa é especificada por um DependencyProperty identificador. (Herdado de DependencyObject) |
| ClearValue(DependencyPropertyKey) |
Limpa o valor local de uma propriedade de apenas leitura. O imóvel a ser limpo é especificado por um DependencyPropertyKey. (Herdado de DependencyObject) |
| Clone() |
Cria um clone modificável deste PolyBezierSegment, fazendo cópias profundas dos valores deste objeto. Ao copiar propriedades de dependência, este método copia referências de recursos e ligações de dados (mas podem deixar de se resolver), mas não as animações nem os seus valores atuais. |
| CloneCore(Freezable) |
Torna a instância um clone (cópia profunda) dos valores especificados Freezable usando valores base (não animados). (Herdado de Freezable) |
| CloneCurrentValue() |
Cria um clone modificável deste PolyBezierSegment objeto, fazendo cópias profundas dos valores atuais desse objeto. Referências de recursos, ligações de dados e animações não são copiadas, mas os seus valores atuais são. |
| CloneCurrentValueCore(Freezable) |
Torna a instância um clone modificável (cópia profunda) do especificado Freezable usando valores atuais de propriedades. (Herdado de Freezable) |
| CoerceValue(DependencyProperty) |
Coage o valor da propriedade de dependência especificada. Isto é conseguido invocando qualquer CoerceValueCallback função especificada nos metadados da propriedade para a propriedade de dependência tal como existe na chamada DependencyObject. (Herdado de DependencyObject) |
| CreateInstance() |
Inicializa uma nova instância da Freezable classe. (Herdado de Freezable) |
| CreateInstanceCore() |
Quando implementado numa classe derivada, cria-se uma nova instância da Freezable classe derivada. (Herdado de Freezable) |
| Equals(Object) |
Determina se um fornecido DependencyObject é equivalente à corrente DependencyObject. (Herdado de DependencyObject) |
| Freeze() |
Torna o objeto atual immodificável e define a sua IsFrozen propriedade como |
| FreezeCore(Boolean) |
Torna este Animatable objeto immodificável ou determina se pode ser tornado inmodificável. (Herdado de Animatable) |
| GetAnimationBaseValue(DependencyProperty) |
Devolve o valor não animado do especificado DependencyProperty. (Herdado de Animatable) |
| GetAsFrozen() |
Cria uma cópia congelada do Freezable, usando valores base (não animados) da propriedade. Como a cópia está congelada, quaisquer subobjetos congelados são copiados por referência. (Herdado de Freezable) |
| GetAsFrozenCore(Freezable) |
Torna a instância um clone congelado do especificado Freezable usando valores base (não animados). (Herdado de Freezable) |
| GetCurrentValueAsFrozen() |
Cria uma cópia congelada do Freezable usando os valores atuais das propriedades. Como a cópia está congelada, quaisquer subobjetos congelados são copiados por referência. (Herdado de Freezable) |
| GetCurrentValueAsFrozenCore(Freezable) |
Torna a instância atual um clone congelado do especificado Freezable. Se o objeto tiver propriedades de dependência animadas, os seus valores animados atuais são copiados. (Herdado de Freezable) |
| GetHashCode() |
Obtém um código de hash para isto DependencyObject. (Herdado de DependencyObject) |
| GetLocalValueEnumerator() |
Cria um enumerador especializado para determinar quais as propriedades de dependência que têm valores localmente definidos neste DependencyObject. (Herdado de DependencyObject) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| GetValue(DependencyProperty) |
Devolve o valor efetivo atual de uma propriedade de dependência nesta instância de um DependencyObject. (Herdado de DependencyObject) |
| InvalidateProperty(DependencyProperty) |
Reavalia o valor efetivo da propriedade de dependência especificada. (Herdado de DependencyObject) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| OnChanged() |
Chamada quando o objeto atual Freezable é modificado. (Herdado de Freezable) |
| OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
Este membro suporta a infraestrutura Windows Presentation Foundation (WPF) e não foi concebido para ser usado diretamente a partir do seu código. (Herdado de Freezable) |
| OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
Assegura que os apontadores de contexto apropriados são estabelecidos para um DependencyObjectType membro de dados que acabou de ser definido. (Herdado de Freezable) |
| OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Sobrepõe a DependencyObject implementação de OnPropertyChanged(DependencyPropertyChangedEventArgs) para também invocar quaisquer Changed manipuladores em resposta a uma alteração da propriedade de dependência do tipo Freezable. (Herdado de Freezable) |
| ReadLocalValue(DependencyProperty) |
Devolve o valor local de uma propriedade de dependência, se esta existir. (Herdado de DependencyObject) |
| ReadPreamble() |
Garante que está a ser acedido Freezable a partir de um thread válido. Os herdeiros de Freezable devem chamar este método no início de qualquer API que leia membros de dados que não são propriedades de dependência. (Herdado de Freezable) |
| SetCurrentValue(DependencyProperty, Object) |
Define o valor de uma propriedade de dependência sem alterar a sua fonte de valor. (Herdado de DependencyObject) |
| SetValue(DependencyProperty, Object) |
Define o valor local de uma propriedade de dependência, especificado pelo seu identificador de propriedade de dependência. (Herdado de DependencyObject) |
| SetValue(DependencyPropertyKey, Object) |
Define o valor local de uma propriedade de dependência somente de leitura, especificado pelo DependencyPropertyKey identificador da propriedade de dependência. (Herdado de DependencyObject) |
| ShouldSerializeProperty(DependencyProperty) |
Devolve um valor que indica se os processos de serialização devem serializar o valor da propriedade de dependência fornecida. (Herdado de DependencyObject) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
| VerifyAccess() |
Faz cumprir que o thread que chama tem acesso a este DispatcherObject. (Herdado de DispatcherObject) |
| WritePostscript() |
Eleva o Changed evento para o Freezable e invoca o seu OnChanged() método. As classes que derivam de Freezable devem chamar este método no final de qualquer API que modifique membros de classe que não estejam armazenados como propriedades de dependência. (Herdado de Freezable) |
| WritePreamble() |
Verifica se o Freezable não está congelado e que está a ser acedido a partir de um contexto de threading válido. Freezable os herdeiros devem chamar este método no início de qualquer API que escreva para membros de dados que não sejam propriedades de dependência. (Herdado de Freezable) |
evento
| Name | Description |
|---|---|
| Changed |
Ocorre quando o Freezable ou um objeto que contém é modificado. (Herdado de Freezable) |