C# 如何控制段落在flowdocument中的确切位置?
我有flowdocument控件和其中的一些段落,我使用边距属性控制每个段落的位置。但我的问题是,例如,我有Para1,Para2和Para3作为段落,当我改变Para2的底边时,我需要Para1保持在相同的位置,Para2靠近Para1,在页面行中Para2之前 我正在尝试创建支票打印解决方案,如有任何帮助,将不胜感激 代码隐藏C# 如何控制段落在flowdocument中的确切位置?,c#,wpf,flowdocument,C#,Wpf,Flowdocument,我有flowdocument控件和其中的一些段落,我使用边距属性控制每个段落的位置。但我的问题是,例如,我有Para1,Para2和Para3作为段落,当我改变Para2的底边时,我需要Para1保持在相同的位置,Para2靠近Para1,在页面行中Para2之前 我正在尝试创建支票打印解决方案,如有任何帮助,将不胜感激 代码隐藏 try { if ((string.IsNullOrEmpty(this.txttop.Text) || string.Is
try
{
if ((string.IsNullOrEmpty(this.txttop.Text) || string.IsNullOrEmpty(this.txtleft.Text) || string.IsNullOrEmpty(this.txtright.Text) || string.IsNullOrEmpty(this.txtbotom.Text) || string.IsNullOrEmpty(this.txtCheckVal_botom.Text) || string.IsNullOrEmpty(this.txtCheckVal_left.Text) || string.IsNullOrEmpty(this.txtCheckVal_right.Text) || string.IsNullOrEmpty(this.txtCheckVal_top.Text) || string.IsNullOrEmpty(this.txtAlphabit_botom.Text) || string.IsNullOrEmpty(this.txtAlphabit_left.Text) || string.IsNullOrEmpty(this.txtAlphabit_right.Text) ? true : string.IsNullOrEmpty(this.txtAlphabit_top.Text)))
{
MessageBox.Show("There is a nullable inputs please be sure before add new template !!! ");
}
else if (string.IsNullOrEmpty(this.txtCheckVal.Text))
{
MessageBox.Show("Please Enter The Amount !!!!");
}
else if (!string.IsNullOrEmpty(this.txtValue.Text))
{
while (this.paragName.Inlines.Count > 0)
{
this.paragName.Inlines.Remove(this.paragName.Inlines.ElementAt<Inline>(0));
}
this.paragName.Inlines.Add(new Run(this.txtValue.Text));
while (this.paragCheckVal.Inlines.Count > 0)
{
this.paragCheckVal.Inlines.Remove(this.paragCheckVal.Inlines.ElementAt<Inline>(0));
}
double va = Convert.ToDouble(this.txtCheckVal.Text);
while (this.TxtDerham.Inlines.Count > 0)
{
this.TxtDerham.Inlines.Remove(this.TxtDerham.Inlines.ElementAt<Inline>(0));
}
if(txtafterPoint.Text!="0")
this.TxtDerham.Inlines.Add(new Run(this.txtafterPoint.Text.Replace("0.", "")));
while (this.TxtThousand.Inlines.Count > 0)
{
this.TxtThousand.Inlines.Remove(this.TxtThousand.Inlines.ElementAt<Inline>(0));
}
InlineCollection inlines = this.TxtThousand.Inlines;
float single = Convert.ToSingle(va);
if (va.ToString().Contains("."))
{
inlines.Add(new Run(string.Concat("#", single.ToString("N").Remove(va.ToString().IndexOf(".") + 1))));
}
else
{
int single2 = Convert.ToInt32(single);
inlines.Add(new Run(string.Concat("#", single2.ToString("N0"))));
}
this.FlLeftRight.Blocks.Add(this.TxtDerham);
this.FlLeftRight1.Blocks.Add(this.TxtThousand);
this.FlLeftRight.Padding = new Thickness(Convert.ToDouble(this.txtDerhamleft.Text), 0, Convert.ToDouble(this.txtDerhamright.Text), 0);
this.FlLeftRight.Margin = new Thickness(Convert.ToDouble(this.txtDerhamleft.Text), 0, Convert.ToDouble(this.txtDerhamright.Text), 0);
this.FlLeftRight1.Padding = new Thickness(Convert.ToDouble(this.txtDerhamleft.Text), 0, Convert.ToDouble(this.txtDerhamright.Text), 0);
this.FlLeftRight1.Margin = new Thickness(Convert.ToDouble(this.txtDerhamleft.Text), 0, Convert.ToDouble(this.txtDerhamright.Text), 0);
this.paragCheckVal.Inlines.Add(this.FlLeftRight1);
this.paragCheckVal.Inlines.Add(this.FlLeftRight);
while (this.paragAlphabit.Inlines.Count > 0)
{
this.paragAlphabit.Inlines.Remove(this.paragAlphabit.Inlines.ElementAt<Inline>(0));
}
this.paragAlphabit.Inlines.Add(new Run(this.txtAlphabit.Text));
this.paragCheckVal.Padding = new Thickness(Convert.ToDouble(this.txtCheckVal_left.Text), Convert.ToDouble(this.txtCheckVal_top.Text), Convert.ToDouble(this.txtCheckVal_right.Text), Convert.ToDouble(this.txtCheckVal_botom.Text));
this.paragName.Padding = new Thickness(Convert.ToDouble(this.txtleft.Text), Convert.ToDouble(this.txttop.Text), Convert.ToDouble(this.txtright.Text), Convert.ToDouble(this.txtbotom.Text));
this.paragAlphabit.Padding = new Thickness(Convert.ToDouble(this.txtAlphabit_left.Text), Convert.ToDouble(this.txtAlphabit_top.Text), Convert.ToDouble(this.txtAlphabit_right.Text), Convert.ToDouble(this.txtAlphabit_botom.Text));
this.paragCheckVal.Margin = new Thickness(Convert.ToDouble(this.txtCheckVal_left.Text), Convert.ToDouble(this.txtCheckVal_top.Text), Convert.ToDouble(this.txtCheckVal_right.Text), Convert.ToDouble(this.txtCheckVal_botom.Text));
this.paragName.Margin = new Thickness(Convert.ToDouble(this.txtleft.Text), Convert.ToDouble(this.txttop.Text), Convert.ToDouble(this.txtright.Text), Convert.ToDouble(this.txtbotom.Text));
this.paragAlphabit.Margin = new Thickness(Convert.ToDouble(this.txtAlphabit_left.Text), Convert.ToDouble(this.txtAlphabit_top.Text), Convert.ToDouble(this.txtAlphabit_right.Text), Convert.ToDouble(this.txtAlphabit_botom.Text));
this.flowDocument.Blocks.Add(this.paragCheckVal);
this.flowDocument.Blocks.Add(this.paragName);
this.flowDocument.Blocks.Add(this.paragAlphabit);
}
else
{
MessageBox.Show("Please Enter The Name !!!!");
}
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}
试试看
{
if((string.IsNullOrEmpty(this.txttop.Text)| string.IsNullOrEmpty(this.txtleft.Text)| string.IsNullOrEmpty(this.txtright.Text)| string.IsNullOrEmpty(this.txtCheckVal_botom.Text)| string.IsNullOrEmpty(this.txtCheckVal_botom.Text)| string.IsNullOrEmpty(this.txtCheckVal.checkval|左| | string.IsNullOrEmpty(this.txtCheckVal_top.Text)| string.IsNullOrEmpty(this.txtAlphabit_botom.Text)| string.IsNullOrEmpty(this.txtAlphabit_left.Text)| string.IsNullOrEmpty(this.txtAlphabit_right.Text)→true:string.IsNullOrEmpty(this.txtAlphabit_top.Text)
{
Show(“存在可为空的输入,请确保在添加新模板之前!!!”;
}
else if(string.IsNullOrEmpty(this.txtCheckVal.Text))
{
MessageBox.Show(“请输入金额!!!!”);
}
如果(!string.IsNullOrEmpty(this.txtValue.Text))为else
{
而(this.paragName.Inlines.Count>0)
{
this.paragName.Inlines.Remove(this.paragName.Inlines.ElementAt(0));
}
Add(新运行(this.txtValue.Text));
而(this.paracheckval.Inlines.Count>0)
{
this.paracheckval.Inlines.Remove(this.paracheckval.Inlines.ElementAt(0));
}
double va=Convert.ToDouble(this.txtCheckVal.Text);
而(this.TxtDerham.Inlines.Count>0)
{
this.TxtDerham.Inlines.Remove(this.TxtDerham.Inlines.ElementAt(0));
}
如果(txtafterPoint.Text!=“0”)
this.TxtDerham.Inlines.Add(新运行(this.txtafterPoint.Text.Replace(“0.”,“”));
而(this.txt000.Inlines.Count>0)
{
this.txt000.Inlines.Remove(this.txt000.Inlines.ElementAt(0));
}
InlineCollection inlines=this.txt000.inlines;
单浮=转换为单浮(va);
如果(va.ToString()包含(“.”)
{
添加(新运行(string.Concat(“#”),single.ToString(“N”).Remove(va.ToString().IndexOf(“.”+1));
}
其他的
{
int single2=Convert.ToInt32(single);
添加(新运行(string.Concat(“#”),single2.ToString(“N0”));
}
this.FlLeftRight.Blocks.Add(this.TxtDerham);
this.FlLeftRight1.Blocks.Add(this.txt000);
this.FlLeftRight.Padding=新厚度(Convert.ToDouble(this.txtDerhamleft.Text),0,Convert.ToDouble(this.txtDerhamright.Text),0);
this.FlLeftRight.Margin=新厚度(Convert.ToDouble(this.txtDerhamleft.Text),0,Convert.ToDouble(this.txtDerhamright.Text),0);
this.FlLeftRight1.Padding=新厚度(Convert.ToDouble(this.txtDerhamleft.Text),0,Convert.ToDouble(this.txtDerhamright.Text),0);
this.FlLeftRight1.Margin=新厚度(Convert.ToDouble(this.txtDerhamleft.Text),0,Convert.ToDouble(this.txtDerhamright.Text),0);
this.paracheckval.Inlines.Add(this.FlLeftRight1);
this.paracheckval.Inlines.Add(this.FlLeftRight);
while(this.paragAlphabit.Inlines.Count>0)
{
移除(this.paragAlphabit.Inlines.ElementAt(0));
}
Add(新运行(this.txtAlphabit.Text));
this.paracheckval.Padding=新厚度(Convert.ToDouble(this.txtCheckVal\u left.Text)、Convert.ToDouble(this.txtCheckVal\u top.Text)、Convert.ToDouble(this.txtCheckVal\u botom.Text));
this.paragName.Padding=新厚度(Convert.ToDouble(this.txtlight.Text)、Convert.ToDouble(this.txttop.Text)、Convert.ToDouble(this.txtlight.Text)、Convert.ToDouble(this.txtbotom.Text));
this.paragAlphabit.Padding=新厚度(Convert.ToDouble(this.txtAlphabit_left.Text)、Convert.ToDouble(this.txtAlphabit_top.Text)、Convert.ToDouble(this.txtAlphabit_botom.Text));
this.paracheckval.Margin=新厚度(Convert.ToDouble(this.txtCheckVal\u left.Text)、Convert.ToDouble(this.txtCheckVal\u top.Text)、Convert.ToDouble(this.txtCheckVal\u botom.Text));
this.paragName.Margin=新厚度(Convert.ToDouble(this.txtlight.Text)、Convert.ToDouble(this.txttop.Text)、Convert.ToDouble(this.txtlight.Text)、Convert.ToDouble(this.txtbotom.Text));
this.paragAlphabit.Margin=新厚度(Convert.ToDouble(this.txtAlphabit_left.Text)、Convert.ToDouble(this.txtAlphabit_top.Text)、Convert.ToDouble(this.txtAlphabit_botom.Text));
this.flowDocument.Blocks.Add(this.paracheckval);
this.flowDocument.Blocks.Add(this.paragName);
this.flowDocument.Blocks.Add(this.paragaphabit);
}
其他的
{
MessageBox.Show(“请输入名称!!!!”);
}
}
捕获(异常)
{
Mes
<FlowDocumentReader Name="fdViewer" VerticalAlignment="Top" Height="198" FlowDirection="LeftToRight" Grid.ColumnSpan="4">
<FlowDocument Name="flowDocument" ColumnWidth="999999" PagePadding="15,0">
<FlowDocument.Resources />
<Paragraph KeepTogether="True" Name="paragCheckVal">
<Floater Name="FlLeftRight" HorizontalAlignment="Left">
<Paragraph Name="TxtDerham">
<Run Text="الديرهم" />
</Paragraph>
</Floater>
<Floater Name="FlLeftRight1" HorizontalAlignment="Left">
<Paragraph Name="TxtThousand">
<Run Text="قيمة الصك" />
</Paragraph>
</Floater>
</Paragraph>
<Paragraph Name="paragName">
<Run Text="اسم الشخص او الجهة" />
</Paragraph>
<Paragraph Name="paragAlphabit">
<Run Text=" قيمة الصك بالحروف" />
</Paragraph>
</FlowDocument>
</FlowDocumentReader>