من دقیقا متوجه نشدم این افزونه و این قابلیت به چه دردی میخوره؟
من word wrap رو فعال میکنم و اسکرول افقی رو برای همیشه حذف میکنم
میشه توضیح بدید به چه کاری میاد اینکه من مشخص کنم توی کاراکتر 80 مثلا باید برم خط بعد؟
PM> Install-Package Rx-Main PM> Install-Package Rx-WPF
private static IEnumerable<string> readFile(string filename) { using (TextReader reader = File.OpenText(filename)) { string line; while ((line = reader.ReadLine()) != null) { Thread.Sleep(100); yield return line; } } }
<Window x:Class="WpfApplicationRxTests.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="450" Width="525"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Button Grid.Row="0" Name="btnGenerateSequence" Click="btnGenerateSequence_Click">Generate sequence</Button> <ListBox Grid.Row="1" Name="lstNumbers" /> <Button Grid.Row="2" IsEnabled="False" Name="btnStop" Click="btnStop_Click">Stop</Button> </Grid> </Window>
using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; using System.Reactive.Concurrency; using System.Reactive.Linq; using System.Threading; using System.Windows; namespace WpfApplicationRxTests { public partial class MainWindow { public MainWindow() { InitializeComponent(); } private static IEnumerable<string> readFile(string filename) { using (TextReader reader = File.OpenText(filename)) { string line; while ((line = reader.ReadLine()) != null) { Thread.Sleep(100); yield return line; } } } private IDisposable _subscribe; private void btnGenerateSequence_Click(object sender, RoutedEventArgs e) { btnGenerateSequence.IsEnabled = false; btnStop.IsEnabled = true; var items = new ObservableCollection<string>(); lstNumbers.ItemsSource = items; _subscribe = readFile("test.txt").ToObservable() .SubscribeOn(ThreadPoolScheduler.Instance) .ObserveOn(DispatcherScheduler.Current) .Finally(finallyAction: () => { btnGenerateSequence.IsEnabled = true; btnStop.IsEnabled = false; }) .Subscribe(onNext: line => { items.Add(line); }, onError: ex => { }, onCompleted: () => { //lstNumbers.ItemsSource = items; }); } private void btnStop_Click(object sender, RoutedEventArgs e) { _subscribe.Dispose(); } } }
using System.Collections.Generic;
namespace WpfTests.Hierarchy.Raw.Model
{
public class Person
{
private readonly List<Person> _children = new List<Person>();
public IList<Person> Children
{
get { return _children; }
}
public string Name { get; set; }
}
}
using System.Collections.ObjectModel;
namespace WpfTests.Hierarchy.Raw.Model
{
public class People : ObservableCollection<Person>
{
public People()
{
this.Add(
new Person
{
Name = "P1",
Children =
{
new Person
{
Name="P2",
Children=
{
new Person
{
Name="P3",
Children=
{
new Person
{
Name="P4",
}
}
}
}
}
}
}
);
}
}
}
<TreeView ItemsSource="{Binding People}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
using System.Diagnostics; using System.IO; using iTextSharp.text; using iTextSharp.text.pdf; namespace TestReaders { class Program { static void writePdf() { using (var document = new Document(PageSize.A4)) { var writer = PdfWriter.GetInstance(document, new FileStream("test.pdf", FileMode.Create)); document.Open(); document.Add(new Paragraph("Test")); PdfContentByte cb = writer.DirectContent; BaseFont bf = BaseFont.CreateFont(); cb.BeginText(); cb.SetFontAndSize(bf, 12); cb.MoveText(88.66f, 367); cb.ShowText("ld"); cb.MoveText(-22f, 0); cb.ShowText("Wor"); cb.MoveText(-15.33f, 0); cb.ShowText("llo"); cb.MoveText(-15.33f, 0); cb.ShowText("He"); cb.EndText(); PdfTemplate tmp = cb.CreateTemplate(250, 25); tmp.BeginText(); tmp.SetFontAndSize(bf, 12); tmp.MoveText(0, 7); tmp.ShowText("Hello People"); tmp.EndText(); cb.AddTemplate(tmp, 36, 343); } Process.Start("test.pdf"); } private static void readPdf() { var reader = new PdfReader("test.pdf"); int intPageNum = reader.NumberOfPages; for (int i = 1; i <= intPageNum; i++) { byte[] contentBytes = reader.GetPageContent(i); File.WriteAllBytes("page-" + i + ".txt", contentBytes); } reader.Close(); } static void Main(string[] args) { writePdf(); readPdf(); } } }
q BT 36 806 Td 0 -18 Td /F1 12 Tf (Test)Tj 0 0 Td ET Q BT /F1 12 Tf 88.66 367 Td (ld)Tj -22 0 Td (Wor)Tj -15.33 0 Td (llo)Tj -15.33 0 Td (He)Tj ET q 1 0 0 1 36 343 cm /Xf1 Do Q
SaveGraphicsState(); // q BeginText(); // BT MoveTextPos(36, 806); // Td MoveTextPos(0, -18); // Td SelectFontAndSize("/F1", 12); // Tf ShowText("(Test)"); // Tj MoveTextPos(0, 0); // Td EndTextObject(); // ET RestoreGraphicsState(); // Q BeginText(); // BT SelectFontAndSize("/F1", 12); // Tf MoveTextPos(88.66, 367); // Td ShowText("(ld)"); // Tj MoveTextPos(-22, 0); // Td ShowText("(Wor)"); // Tj MoveTextPos(-15.33, 0); // Td ShowText("(llo)"); // Tj MoveTextPos(-15.33, 0); // Td ShowText("(He)"); // Tj EndTextObject(); // ET SaveGraphicsState(); // q TransMatrix(1, 0, 0, 1, 36, 343); // cm XObject("/Xf1"); // Do RestoreGraphicsState(); // Q
ERROR: 'VK_SPACE' in Shift State 'Shift' must be made up of white space character(s), but is defined as '' (U+200c) instead.
39 SPACE 0 0020 200c 0020 -1 // SPACE, ZERO WIDTH NON-JOINER, SPACE, <none>
0 //Column 4 1 //Column 5 : Shft 2 //Column 6 : Ctrl 3 //Column 7 : Shft Ctrl
private bool VerifySpaceBarIntegrity(ShiftState ss, bool fMustBeDefined)
if (!Utilities.IsSpacing(ss.Characters)) { this.WriteErrorToLogFile("SpaceKeyNeedsWhiteSpaceCharacters", new string[] { "VK_" + Utilities.VkStringOfIvk(ss.VK), this.m_stStateLabel[ss.State], ss.Characters, Utilities.FromCharacterToUPlusForm(ss.Characters) }); flag = false; /*اینجا باید اصلاح شود!*/ }
<#@ template debug="false" hostspecific="false" language="C#" #> <#@ output extension=".txt" #>
خوب؛ برای ادامه، باید با قواعد کد نویسی در Text template آشنا شوید. جلسه بعدی قواعد کد نویسی T4 را بررسی خواهیم کرد.