I have the following extension method in my application. It captures previews of my usercontrols and allows the user to navigate them via a menu.
/// <summary>/// Renders a framework element as a bitmap image./// </summary>/// <param name="frameworkElement">The framework element to be rendered.</param>/// <param name="background">The background to be applied to the element, in case the element has trasnparent background.</param>/// <param name="scale">The scaling of the image, default should be 1.</param>/// <returns>The image as a scaled bitmap.</returns>public static BitmapImage RenderToBitmap(this FrameworkElement frameworkElement, Brush background, double scale = 1){ Check.NotNull(frameworkElement, "frameworkElement"); // as seen here: http://stackoverflow.com/questions/19395105/wpf-pngbitmapencoder-how-to-disable-background-transparency var renderWidth = (int)(frameworkElement.RenderSize.Width * scale); var renderHeight = (int)(frameworkElement.RenderSize.Height * scale); if (renderWidth > 0 && renderHeight > 0) { var renderTarget = new RenderTargetBitmap(renderWidth, renderHeight, 96, 96, PixelFormats.Default); var sourceBrush = new VisualBrush(frameworkElement); var drawingVisual = new DrawingVisual(); var rect = new Rect(new Point(0, 0), new Point(frameworkElement.RenderSize.Width, frameworkElement.RenderSize.Height)); using (var drawingContext = drawingVisual.RenderOpen()) { drawingContext.PushTransform(new ScaleTransform(scale, scale)); drawingContext.DrawRectangle(background, null, rect); drawingContext.DrawRectangle(sourceBrush, null, rect); } renderTarget.Render(drawingVisual); var image = new BitmapImage(); using (MemoryStream memoryStream = new MemoryStream()) { JpegBitmapEncoder encoder = new JpegBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(renderTarget)); encoder.Save(memoryStream); image.BeginInit(); image.StreamSource = new MemoryStream(memoryStream.ToArray()); image.EndInit(); } return image; } return null;}
Lately we've started a new development with the radmap control and we started to have some issues. The app hanged whenever we entered the view containing the map. I profiled the app and the results tell me that there's an issue with the radmap control.
I've started trying stuff and I realized that the problem starts when I try to generate the visual before the image creation. If I instead do renderTarget.Render(frameworkElement) it seems to work, but then I can't apply the background transformation to the visual. The problem starts when I use the map to create a VisualBrush. Could this be a bug?
Thanks for your time.
Hello
The following HTML code looks very different when loaded in the RichTextBox compared to the Broswer version.
Check the attached images.
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Listagem Módulos Montados</title>
</head>
<body>
<table align="center" border="0">
<thead id="HEADER">
<tr>
<td align="middle">
<table width="630" border="0">
<tbody>
<tr>
<td style="FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #808080; PADDING-TOP: 20px; FONT-FAMILY: Arial" width="400">Data:
12/01/2016<span style="MARGIN: 0px; WIDTH: 10px"></span> Hora:
11:29:02</td>
<td style="FONT-WEIGHT: bold; FONT-SIZE: 12px; COLOR: #808080; PADDING-TOP: 20px; FONT-FAMILY: Arial" align="right">Listagem
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</thead>
<tbody>
<tr id="CUSTOMERDATA">
<td valign="top">
<table style="BORDER-RIGHT: #818181 1px solid; BORDER-TOP: #818181 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #818181 1px solid; BORDER-BOTTOM: #818181 1px solid; FONT-FAMILY: Tahoma; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" width="100%" border="0">
<tbody>
<tr>
<td style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 16px; PADDING-BOTTOM: 5px; COLOR: #808080; PADDING-TOP: 5px; BORDER-BOTTOM: #818181 1px solid" bgcolor="#eeeeee"><b>Dados do cliente:
</b></td>
</tr>
<tr>
<td style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; LINE-HEIGHT: 20px; PADDING-TOP: 5px" width="592" height="22">
<table cellspacing="5" cellpadding="2" width="100%" border="0">
<tbody>
<tr>
<td style="FONT-SIZE: 10px"><b><span style="COLOR: #535353">Nome:
</span></b></td>
<td style="FONT-SIZE: 10px"><b><span style="COLOR: #535353">CPF:
</span></b></td>
</tr>
<tr>
<td style="FONT-SIZE: 10px"><b><span style="COLOR: #535353">Endereço:
</span></b></td>
<td style="FONT-SIZE: 10px"><b><span style="COLOR: #535353">CEP:
</span></b></td>
</tr>
<tr>
<td style="FONT-SIZE: 10px"><b><span style="COLOR: #535353">Bairro:
</span></b></td>
<td style="FONT-SIZE: 10px"><b><span style="COLOR: #535353">UF:
</span></b></td>
</tr>
<tr>
<td style="FONT-SIZE: 10px"><b><span style="COLOR: #535353">End. Entrega:
</span></b></td>
<td style="FONT-SIZE: 10px"><b><span style="COLOR: #535353">Cidade:
</span></b></td>
</tr>
<tr>
<td style="FONT-SIZE: 10px"><b><span style="COLOR: #535353">Telefone:
</span></b></td>
<td style="FONT-SIZE: 10px"><b><span style="COLOR: #535353">Celular:
</span></b></td>
</tr>
<tr>
<td style="FONT-SIZE: 10px" colspan="2"><b><span style="COLOR: #535353">E-mail:
</span></b></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr id="BODY" templatetext="Módulos montados por categoria">
<td valign="top"></td>
</tr>
<tr id="OBSERVATIONS">
<td valign="center">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="color:#818181;line-height:20px;padding:5px;font-size:10px;font-family:Arial;" valign="top" class="textoorc"><b><span style="color:#808080">Observações:</span></b><br></td>
</tr>
</table>
</td>
</tr>
</tbody>
<tfoot id="FOOTER">
<tr>
<td align="middle"><br><br><b><span style="COLOR: #535353">Razão social:
</span></b><span style="MARGIN: 0px; WIDTH: 5px"></span><span style="MARGIN: 0px; WIDTH: 10px"></span>|
<span style="MARGIN: 0px; WIDTH: 10px"></span><b><span style="COLOR: #535353">Endereço:
</span></b><span style="MARGIN: 0px; WIDTH: 5px"></span><span style="MARGIN: 0px; WIDTH: 10px"></span> |
<span style="MARGIN: 0px; WIDTH: 10px"></span><b><span style="COLOR: #535353">Telefone:
</span></b><span style="MARGIN: 0px; WIDTH: 5px"></span></td>
</tr>
<tr>
<td align="middle"> Todos os direitos reservados
</td>
</tr>
</tfoot>
</table>
</body>
</html>
public List<System.Drawing.Image> GetImages() { List<System.Drawing.Image> list = new List<System.Drawing.Image>(); RadDiagramPagesInfo pagesInfo = this.CalculatePages(BackgroundPageGrid.GetPageSize(this), new Thickness()); pagesInfo.Background = this.Background; pagesInfo.Dpi = 96d; foreach (WriteableBitmap writeableBitmap in pagesInfo.Pages) { using (MemoryStream stream = new MemoryStream()) { PngBitmapEncoder encoder = new PngBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(writeableBitmap)); encoder.Save(stream); list.Add(System.Drawing.Image.FromStream(stream)); } } return (list); }The problem is that pagesInfo.Pages is empty !
Here is the call !
DiagramGraphSource graphSource = new DiagramGraphSource(); graphSource.LoadProcedureSteps(steps.Cast<IStep>().ToList()); diagram.GraphSource = graphSource; diagram.Measure(new System.Windows.Size(1000, 1000)); diagram.Arrange(new Rect(new System.Windows.Size(1000, 1000))); return (diagram.GetImages().Select(x => new ImageObject { Image = x}).ToList());Is it possible to disable the "Search as You Type" feature (Ctrl+F) shortcut?
Best regards
Michael
I would like the user to be able to edit the text in the TimeSpanPicker or pick the values from the drop down. Is this supported?
Hi,
I have some question about GridView edit mode.
Question 1:
In the GridView's PerpareCellForEdit event, I have some business code for verifying whether the current cell can be edited. If business cannot let the cell be edited, I used CancelEdit() function to exit edit mode, but the CancelEdit() function will fire CellEditEnded event. I have some code for DB communication in that event. Do you have some way the can leave edit mode but don't fire CellEditEnded event?
Question 2:
When we double clicked a cell, it will change to edit mode. If we click the other cells or other places, it will leaves edit mode, but if we click the next cell in the same row, the next cell will still in the edit mode and fired CellEditEnded event and PrepareCellForEdit event. I don't want to click the next cell in the same row stay with in edit mode, I want to leave edit mode when click the next cell. Is there a way to achieve it?
Than you
<
telerik:RadOutlookBarItem Header="{StaticResource Files}" FontWeight="Bold" Icon="Resources/Files_24x24.png" SmallIcon="Resources/Files_16x16.png" Tag="Files">
