WPF 多线程处理(6)

时间:2023-12-15 12:29:50

以下是子窗体的UI:

<Window x:Class="Automatically.View"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="View"
SizeToContent="WidthAndHeight"
WindowStartupLocation="CenterScreen"
Icon="/Automatically;component/Images/schedule.ico"
>
<Grid>
<DockPanel>
<Image Name="Icon" Width="" Height="" DockPanel.Dock="Left"/>
<TextBlock Name="tbk_Files"></TextBlock>
</DockPanel>
</Grid>
</Window>

子窗体的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes; namespace Automatically
{
/// <summary>
/// Interaction logic for View.xaml
/// </summary>
public partial class View : Window
{
private object lbi; public View(object lbi)
{
InitializeComponent();
// TODO: Complete member initialization
this.lbi = lbi; this.Dispatcher.Invoke(new Action(delegate
{ DockPanel dp = lbi as DockPanel; foreach (UIElement ele in dp.Children)
{
if (ele is Image)
{
Image img = ele as Image;
Icon.Source = img.Source;
}
if (ele is TextBlock)
{
TextBlock tbk = ele as TextBlock;
foreach (var t in tbk.Inlines)
{
if (t is Run)
{
Run r = t as Run;
tbk_Files.Inlines.Add(new Run(r.Text));
}
if (t is LineBreak)
{
LineBreak l = t as LineBreak;
tbk_Files.Inlines.Add(new LineBreak());
}
}
}
}
}));
}
}
}

到此就完结了,希望给各位初学WPF的一些提示.

需要源码的小朋友可以留言啦!!!