如何在silverlight 5中处理打印对话框关闭事件

如何在silverlight 5中处理打印对话框关闭事件,silverlight,printing,silverlight-5.0,Silverlight,Printing,Silverlight 5.0,我是Silverlight的新手。打印时,我需要删除日期选择器图标。所以我写了这段代码来删除打印时的图标。如果单击“打印”对话框中的“打印”按钮,它将正常工作。但是如果我关闭打印对话框,日期选择器图标就不会出现。我必须在打印对话框关闭时编写代码。我找不到“打印事件”对话框 这是用于打印的代码: private StackPanel Downloaded_Data(StackPanel Sp_Element) { foreach (UIElement ele in

我是Silverlight的新手。打印时,我需要删除
日期选择器
图标。所以我写了这段代码来删除打印时的图标。如果单击“打印”对话框中的“打印”按钮,它将正常工作。但是如果我关闭打印对话框,日期选择器图标就不会出现。我必须在打印对话框关闭时编写代码。我找不到“打印事件”对话框

这是用于打印的代码:

    private StackPanel Downloaded_Data(StackPanel Sp_Element)
    {
        foreach (UIElement ele in Sp_Element.Children)
        {
            if (ele is FirstPageTC)
            {
                if ((ele as FirstPageTC).Content is StackPanel)
                    Downloaded_Data((ele as FirstPageTC).Content as StackPanel);
                if ((ele as FirstPageTC).Content is Grid)
                    Download_Grid((ele as FirstPageTC).Content as Grid);
            }
            if (ele is Blank_Page)
            {
                if ((ele as Blank_Page).Content1 is StackPanel)
                    Downloaded_Data((ele as Blank_Page).Content1 as StackPanel);
                if ((ele as Blank_Page).Content1 is Grid)
                    Download_Grid((ele as Blank_Page).Content1 as Grid);
            }


            if (ele is DatePicker)
            {
                DatePicker s = ele as DatePicker;
                s.Style = App.Current.Resources["DateStyle"] as Style;
               // s.Background = new SolidColorBrush(Color.FromArgb(255, 143, 188, 143));
            }

            if (ele is StackPanel)
            {
                Downloaded_Data(ele as StackPanel);
            }
            if (ele is Grid)
            {
                Download_Grid(ele as Grid);
            }
        }
        return Sp_Element;
    }

    public void Download_Grid(Grid grid_down)
    {
        foreach (UIElement ele in grid_down.Children)
        {
            if (ele is Border)
            {
                UIElement ele_b = (ele as Border).Child;
                if (ele_b is DatePicker)
                {
                    DatePicker s = ele_b as DatePicker;

                    s.Style = App.Current.Resources["DateStyle"] as Style;
                   // s.Background = new SolidColorBrush(Color.FromArgb(255, 143, 188, 143));
                }

                //here
                if (ele_b is Grid)
                {
                    Download_Grid(ele_b as Grid);
                }
                if (ele_b is StackPanel)
                {
                    Downloaded_Data(ele_b as StackPanel);
                }
            }
        }
    }

    private void Downloaded_Datepicker(StackPanel Sp_Element)
    {
        foreach (UIElement ele in Sp_Element.Children)
        {
            if (ele is FirstPageTC)
            {
                if ((ele as FirstPageTC).Content is StackPanel)
                    Downloaded_Datepicker((ele as FirstPageTC).Content as StackPanel);
                if ((ele as FirstPageTC).Content is Grid)
                    Download_GridDate((ele as FirstPageTC).Content as Grid);
            }
            if (ele is Blank_Page)
            {
                if ((ele as Blank_Page).Content1 is StackPanel)
                    Downloaded_Datepicker((ele as Blank_Page).Content1 as StackPanel);
                if ((ele as Blank_Page).Content1 is Grid)
                    Download_GridDate((ele as Blank_Page).Content1 as Grid);
            }


            if (ele is DatePicker)
            {
                DatePicker s = ele as DatePicker;

                s.Style = App.Current.Resources["DateNormal"] as Style;
            }

            if (ele is StackPanel)
            {
                Downloaded_Datepicker(ele as StackPanel);
            }
            if (ele is Grid)
            {
                Download_GridDate(ele as Grid);
            }
        }

    }

    public void Download_GridDate(Grid grid_down)
    {
        foreach (UIElement ele in grid_down.Children)
        {
            if (ele is Border)
            {
                UIElement ele_b = (ele as Border).Child;
                if (ele_b is DatePicker)
                {
                    DatePicker s = ele_b as DatePicker;
                    s.Style = App.Current.Resources["DateNormal"] as Style;

                }

                //here
                if (ele_b is Grid)
                {
                    Download_GridDate(ele_b as Grid);
                }
                if (ele_b is StackPanel)
                {
                    Downloaded_Datepicker(ele_b as StackPanel);
                }
            }
        }
    }

    public void PrintPage(StackPanel sp_Print)
    {
        foreach (UIElement sp_Element in sp_Print.Children)
        {
            if (sp_Element is StackPanel)
            {
                StackPanel printableSpnel=Downloaded_Data(sp_Element as StackPanel);
                //sp_Printing[count] = sp_Element as StackPanel;
                //count = count + 1;     
                sp_Printing[count] = printableSpnel;
                count = count + 1;
            }
        }
       WithDatePickerIcon = sp_Print as StackPanel;
        print_Doc.PrintPage += new EventHandler<PrintPageEventArgs>(print_Doc_PrintPage);
        print_Doc.Print("REOSK Printing");
    }

    void print_Doc_PrintPage(object sender, PrintPageEventArgs e)
    {

        if (count == i)
        {                
            e.PageVisual = sp_Printing[i];
            e.HasMorePages = false;
            Downloaded_Datepicker(WithDatePickerIcon as StackPanel);
        }            
        else
        {      
            e.PageVisual = sp_Printing[i];                
            e.HasMorePages = true;
            i = i + 1;
            Downloaded_Datepicker(WithDatePickerIcon as StackPanel); 
        }
    }
private StackPanel下载的\u数据(StackPanel Sp\u元素)
{
foreach(Sp_Element.Children中的UIElement ele)
{
如果(ele是FirstPageTC)
{
if((ele作为FirstPageTC)。内容为StackPanel)
下载的_数据((ele作为FirstPageTC)。内容作为StackPanel);
if((ele作为FirstPageTC)。内容为网格)
下载网格((ele作为FirstPageTC)。内容作为网格);
}
如果(ele为空白页)
{
if((元素为空白页面)。内容1为StackPanel)
下载的_数据((ele为空白_页)。Content1为StackPanel);
if((ele为空白页面)。Content1为网格)
下载网格((ele作为空白页面)。Content1作为网格);
}
if(ele是日期选择器)
{
日期选择器s=ele作为日期选择器;
s、 Style=App.Current.Resources[“DateStyle”]作为样式;
//s.Background=新的SolidColorBrush(Color.FromArgb(255、143、188、143));
}
if(ele为StackPanel)
{
下载的_数据(作为StackPanel的ele);
}
if(ele是网格)
{
下载网格(ele作为网格);
}
}
返回Sp_元素;
}
公共无效下载网格(网格向下)
{
foreach(UIElement ele in grid_down.Children)
{
如果(元素是边界)
{
UIElement ele_b=(ele作为边框);
if(ele_b是日期选择器)
{
日期选择器s=作为日期选择器的元素;
s、 Style=App.Current.Resources[“DateStyle”]作为样式;
//s.Background=新的SolidColorBrush(Color.FromArgb(255、143、188、143));
}
//这里
如果(元素b是网格)
{
下载网格(作为网格的元素);
}
if(电气元件为StackPanel)
{
下载的数据(作为StackPanel的元素);
}
}
}
}
私有void\u数据选择器(StackPanel Sp\u元素)
{
foreach(Sp_Element.Children中的UIElement ele)
{
如果(ele是FirstPageTC)
{
if((ele作为FirstPageTC)。内容为StackPanel)
下载的_Datepicker((ele作为FirstPageTC)。内容作为StackPanel);
if((ele作为FirstPageTC)。内容为网格)
下载GridDate((ele作为FirstPageTC)。内容作为网格);
}
如果(ele为空白页)
{
if((元素为空白页面)。内容1为StackPanel)
下载的日期选择器((ele为空白页面)。Content1为StackPanel);
if((ele为空白页面)。Content1为网格)
下载网格日期((ele为空白页面)。Content1为网格);
}
if(ele是日期选择器)
{
日期选择器s=ele作为日期选择器;
s、 Style=App.Current.Resources[“DateNormal”]作为样式;
}
if(ele为StackPanel)
{
下载的日期选择器(作为StackPanel的元素);
}
if(ele是网格)
{
下载_GridDate(ele作为网格);
}
}
}
公共无效下载\u网格日期(网格向下)
{
foreach(UIElement ele in grid_down.Children)
{
如果(元素是边界)
{
UIElement ele_b=(ele作为边框);
if(ele_b是日期选择器)
{
日期选择器s=作为日期选择器的元素;
s、 Style=App.Current.Resources[“DateNormal”]作为样式;
}
//这里
如果(元素b是网格)
{
下载网格日期(ele_b as Grid);
}
if(电气元件为StackPanel)
{
下载的日期选择器(作为StackPanel的元素);
}
}
}
}
公共作废打印页(StackPanel sp_打印)
{
foreach(ui元素sp_Print.Children中的sp_元素)
{
if(sp_元素为StackPanel)
{
StackPanel PrintablesPanel=下载的_数据(sp_元素作为StackPanel);
//sp_打印[计数]=作为StackPanel的sp_元素;
//计数=计数+1;
sp_Printing[计数]=可打印的SPNEL;
计数=计数+1;
}
}
WithDatePickerIcon=sp_打印为StackPanel;
print_Doc.PrintPage+=新事件处理程序(print_Doc\u PrintPage);
打印文件打印(“REOSK打印”);
}
无效打印\文档\打印页(对象发送者,PrintPageEventArgs e)
{
如果(计数=i)
{                
e、 PageVisual=sp_打印[i];
e、 HasMorePages=false;
下载的_Datepicker(DatePickericon作为StackPanel);
}            
其他的
{      
e、 PageVisual=sp_打印[i];
e、 HasMorePages=true;
i=i+1;
下载的_Datepicker(DatePickericon作为StackPanel);
}
}

我不能说我完全理解您的代码,但它有一个关键问题,那可能是您的问题: