Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
c4b23e4
Image updates.
damabe Feb 27, 2019
a9fd7be
Image updates.
damabe Feb 27, 2019
648a692
Merge branch 'master' of https://github.com/dotnet/docs
damabe Mar 6, 2019
ad6b189
Merge branch 'master' of https://github.com/dotnet/docs
damabe Mar 7, 2019
3b1be9a
Merge branch 'master' of https://github.com/dotnet/docs
damabe Mar 8, 2019
970c319
Merge branch 'master' of https://github.com/dotnet/docs
damabe Mar 10, 2019
1531b8d
Merge branch 'master' of https://github.com/dotnet/docs
damabe Mar 13, 2019
3ba1a22
Merge branch 'master' of https://github.com/dotnet/docs
damabe Mar 15, 2019
f170c87
Merge branch 'master' of https://github.com/dotnet/docs
damabe Mar 16, 2019
37c98b1
Merge branch 'master' of https://github.com/dotnet/docs
damabe Mar 17, 2019
18da5b4
Merge branch 'master' of https://github.com/dotnet/docs
damabe Mar 18, 2019
1fca543
Merge branch 'master' of https://github.com/dotnet/docs
damabe Mar 19, 2019
ac379a9
Merge branch 'master' of https://github.com/dotnet/docs
damabe Mar 20, 2019
5b322e2
SEO image updates
damabe Mar 20, 2019
e5e0a32
SEO image updates
damabe Mar 20, 2019
c92e0fa
SEO image updates
damabe Mar 20, 2019
ffe4345
SEO image updates
damabe Mar 20, 2019
db03c04
SEO image updates
damabe Mar 20, 2019
c847639
SEO image updates
damabe Mar 20, 2019
20c36a5
SEO image updates
damabe Mar 20, 2019
baee962
SEO image updates
damabe Mar 20, 2019
0c60092
SEO image updates
damabe Mar 20, 2019
dc9c26e
Update boxing-and-unboxing.md
damabe Mar 26, 2019
e6a205d
Update callback-functions.md
damabe Mar 26, 2019
213c5d3
Update how-to-position-a-tooltip.md
damabe Mar 26, 2019
0badfb6
Update how-to-position-a-tooltip.md
damabe Mar 28, 2019
ad6c2e3
Update docs/framework/winforms/advanced/how-to-rotate-reflect-and-ske…
mairaw Apr 2, 2019
c7d3bfb
Update docs/framework/winforms/advanced/how-to-rotate-reflect-and-ske…
mairaw Apr 2, 2019
6dd38a1
Update docs/framework/winforms/advanced/how-to-rotate-reflect-and-ske…
mairaw Apr 2, 2019
3d1dd7d
Update docs/framework/winforms/advanced/how-to-set-pen-width-and-alig…
mairaw Apr 2, 2019
eb5215e
Update docs/framework/winforms/advanced/how-to-set-pen-width-and-alig…
mairaw Apr 2, 2019
ad43290
Update docs/framework/winforms/advanced/how-to-set-pen-width-and-alig…
mairaw Apr 2, 2019
26932bf
Update docs/framework/winforms/advanced/how-to-set-pen-width-and-alig…
mairaw Apr 2, 2019
513649d
Update docs/framework/winforms/advanced/how-to-set-pen-width-and-alig…
mairaw Apr 2, 2019
56ded21
Update docs/framework/wpf/controls/bulletdecorator.md
mairaw Apr 2, 2019
7f32a37
Update docs/framework/wpf/controls/how-to-position-a-tooltip.md
mairaw Apr 2, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions docs/csharp/programming-guide/types/boxing-and-unboxing.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,9 @@ Boxing is the process of converting a [value type](../../../csharp/language-refe

[!code-csharp[csProgGuideTypes#18](~/samples/snippets/csharp/VS_Snippets_VBCSharp/CsProgGuideTypes/CS/Class1.cs#18)]

The result of this statement is creating an object reference `o`, on the stack, that references a value of the type `int`, on the heap. This value is a copy of the value-type value assigned to the variable `i`. The difference between the two variables, `i` and `o`, is illustrated in the following figure.
The result of this statement is creating an object reference `o`, on the stack, that references a value of the type `int`, on the heap. This value is a copy of the value-type value assigned to the variable `i`. The difference between the two variables, `i` and `o`, is illustrated in the following image of boxing conversion:

![BoxingConversion graphic](../../../csharp/programming-guide/types/media/vcboxingconversion.gif "vcBoxingConversion")
Boxing Conversion
![Graphic showing the difference between i and o variables.](./media/boxing-and-unboxing/boxing-operation-i-o-variables.gif)

It is also possible to perform the boxing explicitly as in the following example, but explicit boxing is never required:

Expand All @@ -66,10 +65,9 @@ Boxing Conversion

[!code-csharp[csProgGuideTypes#21](~/samples/snippets/csharp/VS_Snippets_VBCSharp/CsProgGuideTypes/CS/Class1.cs#21)]

The following figure demonstrates the result of the previous statements.
The following figure demonstrates the result of the previous statements:

![UnBoxing Conversion graphic](../../../csharp/programming-guide/types/media/vcunboxingconversion.gif "vcUnBoxingConversion")
Unboxing Conversion
![Graphic showing an unboxing conversion.](./media/boxing-and-unboxing/unboxing-conversion-operation.gif)

For the unboxing of value types to succeed at run time, the item being unboxed must be a reference to an object that was previously created by boxing an instance of that value type. Attempting to unbox `null` causes a <xref:System.NullReferenceException>. Attempting to unbox a reference to an incompatible value type causes an <xref:System.InvalidCastException>.

Expand Down
7 changes: 4 additions & 3 deletions docs/framework/interop/callback-functions.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,11 @@ A callback function is code within a managed application that helps an unmanaged

To call most DLL functions from managed code, you create a managed definition of the function and then call it. The process is straightforward.

Using a DLL function that requires a callback function has some additional steps. First, you must determine whether the function requires a callback by looking at the documentation for the function. Next, you have to create the callback function in your managed application. Finally, you call the DLL function, passing a pointer to the callback function as an argument. The following illustration summarizes these steps.
Using a DLL function that requires a callback function has some additional steps. First, you must determine whether the function requires a callback by looking at the documentation for the function. Next, you have to create the callback function in your managed application. Finally, you call the DLL function, passing a pointer to the callback function as an argument.

The following illustration summarizes the callback function and implementation steps:

![Platform invoke callback](../../../docs/framework/interop/media/pinvokecallback.gif "pinvokecallback")
Callback function and implementation
![Diagram showing the platform invoke callback process.](./media/callback-functions/platform-invoke-callback-process.gif)

Callback functions are ideal for use in situations in which a task is performed repeatedly. Another common usage is with enumeration functions, such as **EnumFontFamilies**, **EnumPrinters**, and **EnumWindows** in the Win32 API. The **EnumWindows** function enumerates through all existing windows on your computer, calling the callback function to perform a task on each window. For instructions and an example, see [How to: Implement Callback Functions](../../../docs/framework/interop/how-to-implement-callback-functions.md).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ author: "BrucePerlerMS"
## Overview
This topic outlines the scenario of building claims-aware WCF services using WIF. There are usually three participants in a claims-aware web service scenario: the web service itself, the end user, and the Security Token Service (STS). The following figure describes this scenario:

![WIF Basic Claims Aware WCF Service](../../../docs/framework/security/media/wifbasicclaimsawarewcfservice.gif "WIFBasicClaimsAwareWCFService")
![Diagram showing WIF Basic Claims Aware WCF Service components.](./media/building-my-first-claims-aware-wcf-service/windows-identify-foundation-basic-claims-aware-windows-communication-foundation-service.gif)

1. The WCF service client (sometimes called agent) uses WIF to send credentials to the STS and upon successful authentication, the agent is issued a token by the STS.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,15 @@ You can rotate, reflect, and skew an image by specifying destination points for

The following illustration shows the original image and the image mapped to the parallelogram. The original image has been skewed, reflected, rotated, and translated. The x-axis along the top edge of the original image is mapped to the line that runs through (200, 20) and (110, 100). The y-axis along the left edge of the original image is mapped to the line that runs through (200, 20) and (250, 30).

![Stripes](./media/stripes1.gif "Stripes1")
![The original image and the image mapped to the parallelogram.](./media/how-to-rotate-reflect-and-skew-images/reflected-skewed-rotated-illustration.gif)

The following illustration shows a similar transformation applied to a photographic image.
The following illustration shows a similar transformation applied to a photographic image:

![Transformed Climber](./media/transformedclimber.png "TransformedClimber")
![The picture of a climber and the picture mapped to the parallelogram.](./media/how-to-rotate-reflect-and-skew-images/reflected-skewed-rotated-photo.png)

The following illustration shows a similar transformation applied to a metafile.
The following illustration shows a similar transformation applied to a metafile:

![Transformed Metafile](./media/transformedmetafile.png "TransformedMetafile")
![Illustration of shapes and text and that mapped to the parallelogram.](./media/how-to-rotate-reflect-and-skew-images/reflected-skewed-rotated-metafile.png)

The following example produces the images shown in the first illustration.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ When you create a <xref:System.Drawing.Pen>, you can supply the pen width as one

- Set the value of the <xref:System.Drawing.Pen.Alignment%2A> property to <xref:System.Drawing.Drawing2D.PenAlignment.Center> (the default) to specify that pixels drawn with the green pen will be centered on the theoretical line. The following illustration shows the resulting line.

![Pens](./media/pens1a.gif "pens1A")
![A black thin line with green highlight.](./media/how-to-set-pen-width-and-alignment/green-pixels-centered-line.gif)

The following code example draws a rectangle twice: once with a black pen of width 1 and once with a green pen of width 10.

Expand All @@ -33,9 +33,9 @@ When you create a <xref:System.Drawing.Pen>, you can supply the pen width as one

- Set the value of the <xref:System.Drawing.Pen.Alignment%2A> property to <xref:System.Drawing.Drawing2D.PenAlignment.Center> to specify that the pixels drawn with the green pen will be centered on the boundary of the rectangle.

The following illustration shows the resulting rectangle.
The following illustration shows the resulting rectangle:

![Pens](./media/pens2.gif "pens2")
![A rectangle drawn with black thin lines with green highlight.](./media/how-to-set-pen-width-and-alignment/green-pixels-centered-rectangle.gif)

[!code-csharp[System.Drawing.UsingAPen#42](~/samples/snippets/csharp/VS_Snippets_Winforms/System.Drawing.UsingAPen/CS/Class1.cs#42)]
[!code-vb[System.Drawing.UsingAPen#42](~/samples/snippets/visualbasic/VS_Snippets_Winforms/System.Drawing.UsingAPen/VB/Class1.vb#42)]
Expand All @@ -47,9 +47,9 @@ When you create a <xref:System.Drawing.Pen>, you can supply the pen width as one
[!code-csharp[System.Drawing.UsingAPen#43](~/samples/snippets/csharp/VS_Snippets_Winforms/System.Drawing.UsingAPen/CS/Class1.cs#43)]
[!code-vb[System.Drawing.UsingAPen#43](~/samples/snippets/visualbasic/VS_Snippets_Winforms/System.Drawing.UsingAPen/VB/Class1.vb#43)]

Now the pixels in the wide green line appear on the inside of the rectangle as shown in the following illustration.
Now the pixels in the wide green line appear on the inside of the rectangle as shown in the following illustration:

![Pens](./media/pens3.gif "pens3")
![A rectangle drawn with black lines with the wide green line inside.](./media/how-to-set-pen-width-and-alignment/green-pixels-inside-rectangle.gif)

## See also
- [Using a Pen to Draw Lines and Shapes](using-a-pen-to-draw-lines-and-shapes.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/framework/wpf/controls/bulletdecorator.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ ms.assetid: 1756cabf-59b4-47a7-883d-1bdf2e5abe00

The following illustration shows examples of controls that use a <xref:System.Windows.Controls.Primitives.BulletDecorator>.

![3 BulletDecorators: CheckBox, RadioButton, TextBox](./media/bulletdecorator.png "BulletDecorator")
![Example of a Checkbox, a RadioButton, and a TextBox bullet decorator.](./media/bulletdecorator/three-bullet-decorators.png)

## Reference
<xref:System.Windows.Controls.Primitives.BulletDecorator>
23 changes: 13 additions & 10 deletions docs/framework/wpf/controls/how-to-position-a-tooltip.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,19 @@ This example shows how to specify the position of a tooltip on the screen.
If you define the contents of a tooltip by using a <xref:System.Windows.Controls.ToolTip> object, you can use the properties of either class; however, the <xref:System.Windows.Controls.ToolTipService> properties take precedence. Use the <xref:System.Windows.Controls.ToolTipService> properties for tooltips that are not defined as <xref:System.Windows.Controls.ToolTip> objects.

The following illustrations show how to position a tooltip by using these properties. Although, the [!INCLUDE[TLA#tla_xaml](../../../../includes/tlasharptla-xaml-md.md)] examples in these illustrations show how to set the properties that are defined by the <xref:System.Windows.Controls.ToolTip> class, the corresponding properties of the <xref:System.Windows.Controls.ToolTipService> class follow the same layout rules. For more information about the possible values for the Placement property, see [Popup Placement Behavior](popup-placement-behavior.md).

![ToolTip placement](./media/tooltipplacement.png "ToolTipPlacement")
ToolTip placement by using the Placement property

![Placing a ToolTip by using a placement rectangle](./media/tooltipplacementrectangle.png "ToolTipPlacementRectangle")
ToolTip placement by using the Placement and PlacementRectangle properties

![ToolTip placement diagram](./media/tooltipplacementprhv.png "ToolTipPlacementPRHV")
ToolTip placement by using the Placement, PlacementRectangle, and Offset properties


The following image shows tooltip placement by using the Placement property:

![Diagram showing ToolTip placement by using the Placement property.](./media/how-to-position-a-tooltip/tooltip-placement-property.png)

The following image shows tooltip placement by using the Placement and PlacementRectangle properties:

![Diagram showing ToolTip placement by using a PlacementRectangle property.](./media/how-to-position-a-tooltip/tooltip-placement-rectangle-property.png)

The following image shows tooltip placement by using the Placement, PlacementRectangle, and Offset properties:

![Diagram showing ToolTip placement by using the Offset property.](./media/how-to-position-a-tooltip/tooltip-placement-offset-property.png)

The following example shows how to use the <xref:System.Windows.Controls.ToolTip> properties to specify the position of a tooltip whose content is a <xref:System.Windows.Controls.ToolTip> object.

[!code-xaml[ToolTipService#ToolTip](~/samples/snippets/csharp/VS_Snippets_Wpf/ToolTipService/CSharp/Pane1.xaml#tooltip)]
Expand Down