Я изменил цвет заливки шаблона (кнопки) в зависимости от значения масштаба через привязку. Это значение привязки не отражено в документе XPS. Пожалуйста, найдите шаблон и код сериализации XPS Doocument, как показано ниже.
Проблема:
Значения привязки (свойство уровня) не отражаются. Так что масштабирование не изменилось. Так как я обновил масштабируемое значение на основе значения уровня.
Xaml Code : based on the level value fill color will change.
<Canvas.Clip>
<RectangleGeometry Rect="0,2.5,100,100">
<RectangleGeometry.Transform>
<ScaleTransform ScaleX="1" ScaleY="{Binding Level}" CenterX="0" CenterY="97.5" />
</RectangleGeometry.Transform>
</RectangleGeometry>
</Canvas.Clip>
//XPS Document Code.
//Set up the WPF Control to be Saved
Canvas controlToPrint= new Canvas();
//canv is the instance of my canvas containing button.
controlToPrint = canv;
canv = null;
FixedDocument fixedDoc = new FixedDocument();
PageContent pageContent = new PageContent();
FixedPage fixedPage = new FixedPage();
//Create first page of document
fixedPage.Children.Add(controlToPrint);
((System.Windows.Markup.IAddChild)pageContent).AddChild(fixedPage);
var size = fixedDoc.DocumentPaginator.PageSize;
pageContent.Measure(size);
pageContent.Arrange(new Rect(new Point(), size));
pageContent.UpdateLayout();
fixedDoc.Pages.Add(pageContent);
// Configure save file dialog box
Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
dlg.FileName = "MyReport"; // Default file name
dlg.DefaultExt = ".xps"; // Default file extension
dlg.Filter = "XPS Documents (.xps)|*.xps"; // Filter files by extension
// Show save file dialog box
Nullable<bool> result = dlg.ShowDialog();
// Process save file dialog box results
if (result == true)
{
// Save document
string filename = dlg.FileName;
FixedDocument doc = fixedDoc;
XpsDocument xpsd = new XpsDocument(filename, FileAccess.ReadWrite);
System.Windows.Xps.XpsDocumentWriter xw = XpsDocument.CreateXpsDocumentWriter(xpsd);
xw.Write(doc);
xpsd.Close();
}
Подскажите, пожалуйста, как этого добиться?
Примечание:
Я мог бы достичь этого при использовании триггеров. Но я не должен был использовать триггеры.
Спасибо
рейнджит.