Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tema se describe cómo usar diferentes tipos de pinceles en un OM XPS.
Los pinceles del OM XPS se basan en elde interfaz IXpsOMBrush dee incluyen lo siguiente:
- Pinceles de mosaico
- de interfaz IXpsOMTileBrush de
- interfaz IXpsOMSolidColorBrush
- de interfaz IXpsOMVisualBrush de
- de interfaz IXpsOMImageBrush
- de interfaz IXpsOMGradientBrush
- interfaz IXpsOMLinearGradientBrush
- interfaz IXpsOMRadialGradientBrush
Pinceles de degradado
Ejemplos de código
Crear un pincel de color sólido
En el ejemplo de código siguiente se crea un pincel de color sólido a partir de un valor de color definido en el código.
HRESULT hr = S_OK;
XPS_COLOR xpsColor;
IXpsOMSolidColorBrush *brush;
// creates a solid red brush
xpsColor.colorType = XPS_COLOR_TYPE_SRGB;
xpsColor.value.sRGB.alpha = 0xFF;
xpsColor.value.sRGB.red = 0xFF;
xpsColor.value.sRGB.green = 0x00;
xpsColor.value.sRGB.blue = 0x00;
hr = xpsFactory->CreateSolidColorBrush(
&xpsColor,
NULL,
reinterpret_cast<IXpsOMSolidColorBrush**>(&brush));
// use brush
// when finished with brush, release pointer
brush->Release();
Creación de un pincel visual
En el ejemplo de código siguiente se crea un pincel a partir de un objeto visual.
HRESULT hr = S_OK;
IXpsOMVisualBrush *brush;
XPS_RECT viewBoxRect = {0,0,0,0};
XPS_RECT viewPortRect = {0,0,0,0};
// set viewBoxRect to define the portion of the visual to use
// as the brush.
//
// set viewPortRect to define the location and size of the
// the brush in the destination
//
// create the brush
hr = xpsFactory->CreateVisualBrush (
&viewBoxRect,
&viewPortRect,
reinterpret_cast<IXpsOMVisualBrush**>(&brush));
// assign the visual object
// brushVisual points to a visual
// that is defined outside of this example
hr = brush->SetVisualLocal (brushVisual);
// use brush
// when finished with brush, release pointer
brush->Release();
Creación de un pincel de imagen
Consulte el ejemplo de código de Colocar imágenes en unDE OM XPS.
Crear un pincel de degradado lineal
En el ejemplo de código siguiente se crea un pincel de degradado lineal. El degradado tiene dos paradas de degradado.
HRESULT hr = S_OK;
XPS_COLOR xpsColorStop;
IXpsOMGradientStop *xpsGradientStop1, *xpsGradientStop2;
IXpsOMLinearGradientBrush *brush;
XPS_POINT startPoint, endPoint;
// define the start color
xpsColorStop.colorType = XPS_COLOR_TYPE_SRGB;
xpsColorStop.value.sRGB.alpha = 0xFF;
xpsColorStop.value.sRGB.red = 0xE4;
xpsColorStop.value.sRGB.green = 0x3B;
xpsColorStop.value.sRGB.blue = 0x2F;
// create a gradient stop by setting the color and location
// for the beginning of the gradient
hr = xpsFactory->CreateGradientStop(
&xpsColorStop,
NULL,
0.0f,
&xpsGradientStop1);
startPoint.x = 375.75f;
startPoint.y = 18.0f;
// define the end color
xpsColorStop.colorType = XPS_COLOR_TYPE_SRGB;
xpsColorStop.value.sRGB.alpha = 0xFF;
xpsColorStop.value.sRGB.red = 0xEF;
xpsColorStop.value.sRGB.green = 0x79;
xpsColorStop.value.sRGB.blue = 0x2F;
// create a gradient stop by setting the color and location
// for the end of the gradient
hr = xpsFactory->CreateGradientStop(
&xpsColorStop,
NULL,
1.0f,
&xpsGradientStop2);
endPoint.x = 375.75f;
endPoint.y = 134.6f;
// create the brush
hr = xpsFactory->CreateLinearGradientBrush(
xpsGradientStop1,
xpsGradientStop2,
&startPoint,
&endPoint,
&brush);
// release gradient stops after creating brush
xpsGradientStop1->Release();
xpsGradientStop2->Release();
// when finished with brush, release pointer to brush
brush->Release();
Temas relacionados