or
public MainWindow(){ StyleManager.ApplicationTheme = new Windows8Theme(); RadRichTextBox.DefaultTextRenderingMode = Telerik.Windows.Documents.UI.TextBlocks.TextBlockRenderingMode.TextBlockWithPropertyCaching; InitializeComponent(); Loaded += (sender, args) => { var htmlContent = File.ReadAllText(@"..\..\Arabic-Lipsum.html"); MyWebBrowser.NavigateToString(htmlContent); var sourceConverter = new HtmlFormatProvider(); var converted = sourceConverter.Import(htmlContent); MyRadRichTextBox.Document = converted; var rtf = new RtfFormatProvider(); var rtfFromHtml = rtf.Export(converted); using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(rtfFromHtml))) { MyRichTextBox.Selection.Load(ms, DataFormats.Rtf); } };}<Window x:Class="RightToLeftLoadingProblem.MainWindow" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" Title="MainWindow" Width="1250" Height="750" ResizeMode="CanResizeWithGrip" WindowStartupLocation="CenterScreen"> <Grid> <Grid Grid.Row="0" Margin="10"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <WebBrowser Name="MyWebBrowser" Grid.Column="0" Margin="5" /> <RichTextBox Name="MyRichTextBox" FlowDirection="RightToLeft" Grid.Column="1" Margin="5" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" /> <telerik:RadRichTextBox Name="MyRadRichTextBox" FlowDirection="RightToLeft" Grid.Column="2" Margin="5" /> </Grid> </Grid> </Grid></Window>Regards
Pierre-Andre
private void PopulateDiagram() { processingDiagram.Clear(); RadDiagramShape ppEnd = new RadDiagramShape() { Content = "End", Width = 100, Height = 50, Geometry = ShapeFactory.GetShapeGeometry(CommonShapeType.CloudShape) }; processingDiagram.AddShape(ppEnd); RadDiagramShape ppStart = new RadDiagramShape() { ContentTemplate = Resources["PreprocessingStartTemplate"] as DataTemplate, Width = 100, Height = 50, Geometry = ShapeFactory.GetShapeGeometry(CommonShapeType.CloudShape) }; processingDiagram.AddShape(ppStart); foreach (PreprocessorSegment segment in SelectedEngine.PreprocessorSegments) { RadDiagramShape segmentStart = new RadDiagramShape() { Content = segment.Node, Width = 100, Height = 50, Geometry = ShapeFactory.GetShapeGeometry(CommonShapeType.EllipseShape) }; processingDiagram.AddShape(segmentStart); RadDiagramConnection connection = new RadDiagramConnection() { Source = ppStart, SourceConnectorPosition = Telerik.Windows.Diagrams.Core.ConnectorPosition.Bottom, Target = segmentStart, TargetConnectorPosition = Telerik.Windows.Diagrams.Core.ConnectorPosition.Top, }; processingDiagram.AddConnection(connection); List<string> unusedOutputs = new List<string>(); Dictionary<string, RadDiagramShape> outputShapes = new Dictionary<string, RadDiagramShape>(); Dictionary<PreprocessorAlgorithmInstance, RadDiagramShape> algShapes = new Dictionary<PreprocessorAlgorithmInstance, RadDiagramShape>(); foreach (PreprocessorAlgorithmInstance alg in segment.Algorithms) { RadDiagramShape algShape = new RadDiagramShape() { Content = alg, ContentTemplate = Resources["PreprocessingAlgorithmInstanceTemplate"] as DataTemplate, Width = 100, Height = 50, Geometry = ShapeFactory.GetShapeGeometry(CommonShapeType.RectangleShape) }; unusedOutputs.Add(alg.Output); outputShapes[alg.Output] = algShape; algShapes[alg] = algShape; processingDiagram.AddShape(algShape); } // Connections from Inputs to Outputs. foreach (PreprocessorAlgorithmInstance alg in segment.Algorithms) { foreach (string input in alg.Inputs) { if (outputShapes.ContainsKey(input)) { RadDiagramConnection cn = new RadDiagramConnection() { Content = input, Source = outputShapes[input], SourceConnectorPosition = Telerik.Windows.Diagrams.Core.ConnectorPosition.Bottom, Target = algShapes[alg], TargetConnectorPosition = Telerik.Windows.Diagrams.Core.ConnectorPosition.Top, TargetCapType = Telerik.Windows.Diagrams.Core.CapType.Arrow1Filled }; processingDiagram.AddConnection(cn); unusedOutputs.Remove(input); } else { RadDiagramConnection cn = new RadDiagramConnection() { Content = input, Source = segmentStart, SourceConnectorPosition = Telerik.Windows.Diagrams.Core.ConnectorPosition.Bottom, Target = algShapes[alg], TargetConnectorPosition = Telerik.Windows.Diagrams.Core.ConnectorPosition.Top, TargetCapType = Telerik.Windows.Diagrams.Core.CapType.Arrow1Filled }; processingDiagram.AddConnection(cn); } } } foreach (string output in unusedOutputs) { RadDiagramConnection cn = new RadDiagramConnection() { Content = output, Source = outputShapes[output], SourceConnectorPosition = Telerik.Windows.Diagrams.Core.ConnectorPosition.Bottom, Target = ppEnd, TargetConnectorPosition = Telerik.Windows.Diagrams.Core.ConnectorPosition.Top, TargetCapType = Telerik.Windows.Diagrams.Core.CapType.Arrow1Filled }; processingDiagram.AddConnection(cn); } } processingDiagram.Layout(); }