public FrameworkElement GetMapTipInfo(MapService.MonitorModel monitorInfoMapTip)
{
try
{
// 盛放提示信息的Canvas
Canvas CanvasMapTip = new Canvas();
// 盛放提示信息的FloatingWindow
FloatingWindow floatingWindowMapTip = new FloatingWindow()
{
Title = "视频点信息",
IsBusy = false,
IsEnabled = true,
IsActive = false,
IsNailed = true,
Visibility = Visibility.Visible,
IsResizable = true,
IsOpen = true,
IsExpanded = true,
MinWidth = 160,
MinHeight = 160,
DisableAnimation = true
};
// 提示信息DataGrid
DataGrid dataGridWindowMapTip = new DataGrid()
{
AutoGenerateColumns = false,
CanUserResizeColumns = true,
GridLinesVisibility = System.Windows.Controls.DataGridGridLinesVisibility.All,
HeadersVisibility = System.Windows.Controls.DataGridHeadersVisibility.Column,
Background = this.LayoutRoot.Resources["mapTipTreeBackBrush"] as SolidColorBrush
};
// 添加提示信息DataGrid的列
dataGridWindowMapTip.Columns.Add(new DataGridTextColumn() { IsReadOnly = true, CanUserResize = true, Header = "属性", Width = new System.Windows.Controls.DataGridLength(80.0), Visibility = Visibility.Visible, ElementStyle = this.Resources["aCellStyle"] as Style, Binding = new System.Windows.Data.Binding("Key") });
dataGridWindowMapTip.Columns.Add(new DataGridTextColumn() { IsReadOnly = true, CanUserResize = true, Header = "值", Visibility = Visibility.Visible, ElementStyle = this.Resources["aCellStyle"] as Style, Binding = new System.Windows.Data.Binding("Value") });
// 提示信息数据源
Dictionary<string, string> dictionaryMapTip = new Dictionary<string, string>();
dictionaryMapTip.Add("视频编号:", monitorInfoMapTip.MonitorId.ToString());
if (monitorInfoMapTip.MonitorName == "")
{
dictionaryMapTip.Add("视频点名:", "无");
}
else
{
dictionaryMapTip.Add("视频点名", monitorInfoMapTip.MonitorName);
}
if (monitorInfoMapTip.Memo == "")
{
dictionaryMapTip.Add("视频点描述:", "无" );
}
else
{
//对长数据进行换行显示 数据库中一共存储500长度,所以 定义一个25长度数组,每个存20长度字符串
string[] dd = { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" };
dd[0] = monitorInfoMapTip.Memo;
int count = monitorInfoMapTip.Memo.Length / 20;
if (count >= 1)
{
for (int i = 1; i <= count; i++)
{
dd[i] = dd[i - 1].Insert(i * 20 + i * 2, "\n");
}
monitorInfoMapTip.Memo = dd[count];
}
dictionaryMapTip.Add("视频点描述:", monitorInfoMapTip.Memo);
}
dataGridWindowMapTip.ItemsSource = dictionaryMapTip;
// 根据信息长度初始化FloatingWindow宽度
dataGridWindowMapTip.Loaded += new RoutedEventHandler(dataGridWindowMapTip_Loaded);
// 添加提示信息DataGrid到FloatingWindow
floatingWindowMapTip.Content = dataGridWindowMapTip;
// 添加提示信息FloatingWindow到Canvas
CanvasMapTip.Children.Add(floatingWindowMapTip);
return CanvasMapTip;
}
catch (Exception ex)
{
// 输出异常日志
MapService.Service1Client objWcfAgency = SilverlightMap.UtilityClass.WcfAgency.GetMapServer();
objWcfAgency.RecordExceptionToFileAsync(ex);
return null;
}
}
主要思想是为数据添加换行符\n然后会自动换行!