Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何控制段落在flowdocument中的确切位置?_C#_Wpf_Flowdocument - Fatal编程技术网

C# 如何控制段落在flowdocument中的确切位置?

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

我有flowdocument控件和其中的一些段落,我使用边距属性控制每个段落的位置。但我的问题是,例如,我有Para1,Para2和Para3作为段落,当我改变Para2的底边时,我需要Para1保持在相同的位置,Para2靠近Para1,在页面行中Para2之前

我正在尝试创建支票打印解决方案,如有任何帮助,将不胜感激

代码隐藏

 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>