载于:
http://www.cnblogs.com/chenxizhang/archive/2011/09/22/2185414.html
很多互联网上的资料,但是实际的开发效果差死了,防止一个组件,跑来跑去,烦。而且效果差,我改不出来,水平差。
不知哪位大虾修改一下,给我,我想一个简单实际的东西最好。研究那些东西也不赚钱;
关于边框线,真是麻烦,互联网上的改装都不能用,效果也差。真是不知道该说什么;
最后我综合意见,本着实战的原则,最后修改了一下;
<Border BorderThickness="2,2,1,2" BorderBrush="#FFA0B3C6" Height="90" Width="560">
<Grid Background="White" Name="GridMain" ShowGridLines="False">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="66" />
<ColumnDefinition Width="81" />
<ColumnDefinition Width="83" />
<ColumnDefinition Width="83" />
<ColumnDefinition Width="84" />
<ColumnDefinition Width="87" />
<ColumnDefinition Width="116*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="30" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<TextBlock FlowDirection="LeftToRight" Grid.Column="1" HorizontalAlignment="Stretch" Name="textBlock2" Text="H1" TextAlignment="Center" TextTrimming="None" TextWrapping="Wrap" VerticalAlignment="Center" />
<TextBlock Grid.Row="2" Grid.RowSpan="2" HorizontalAlignment="Stretch" Name="textBlock5" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Stretch" FlowDirection="LeftToRight">结果<LineBreak />(B)</TextBlock>
<TextBlock Grid.Row="1" HorizontalAlignment="Stretch" Name="textBlock9" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Stretch" FlowDirection="LeftToRight">结果<LineBreak />(A)</TextBlock>
<TextBlock Grid.Column="6" HorizontalAlignment="Stretch" Name="textBlock12" Text="合计" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Center" />
<TextBlock Grid.Column="3" HorizontalAlignment="Stretch" Name="textBlock1" Text="结果3" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Center" />
<TextBlock Grid.Column="4" HorizontalAlignment="Stretch" Name="textBlock4" Text="结果4" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Center" />
<TextBlock Grid.Column="5" HorizontalAlignment="Stretch" Name="textBlock6" Text="结果5" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Center" />
<TextBox Name="textBox2" Grid.Column="1" Grid.Row="1" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" />
<TextBox Grid.Column="1" Grid.Row="2" HorizontalAlignment="Stretch" Name="textBox3" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" />
<TextBox Grid.Column="2" Grid.Row="1" HorizontalAlignment="Stretch" Name="textBox1" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" />
<TextBox Grid.Column="2" Grid.Row="2" Grid.RowSpan="2" HorizontalAlignment="Stretch" Name="textBox4" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" />
<TextBox Grid.Column="3" Grid.Row="1" HorizontalAlignment="Stretch" Name="textBox5" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" />
<TextBox Grid.Column="3" Grid.Row="2" Grid.RowSpan="2" HorizontalAlignment="Stretch" Name="textBox6" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" />
<TextBox Grid.Column="4" Grid.Row="1" HorizontalAlignment="Stretch" Name="textBox7" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" />
<TextBox Grid.Column="4" Grid.Row="2" HorizontalAlignment="Stretch" Name="textBox8" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" />
<TextBox Grid.Column="5" Grid.Row="1" HorizontalAlignment="Stretch" Name="textBox9" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" Foreground="White" Background="White">
<TextBox.BorderBrush>
<LinearGradientBrush>
<GradientStop Color="#FFA3AEB9" Offset="0" />
<GradientStop Color="#FF8399A9" Offset="0.375" />
<GradientStop Color="#FF718597" Offset="0.375" />
<GradientStop Color="Black" Offset="1" />
</LinearGradientBrush>
</TextBox.BorderBrush>
</TextBox>
<TextBox Grid.Column="5" Grid.Row="2" HorizontalAlignment="Stretch" Name="textBox10" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" Foreground="White" Background="White">
<TextBox.BorderBrush>
<LinearGradientBrush>
<GradientStop Color="#FFA3AEB9" Offset="0" />
<GradientStop Color="#FF8399A9" Offset="0.375" />
<GradientStop Color="#FF718597" Offset="0.375" />
<GradientStop Color="Black" Offset="1" />
</LinearGradientBrush>
</TextBox.BorderBrush>
</TextBox>
<c1:C1FlexGrid Grid.Column="4" Grid.Row="2" HorizontalAlignment="Left" Margin="76,100,0,0" Name="c1FlexGrid1" VerticalAlignment="Top" Grid.ColumnSpan="3" Height="35" Width="171" />
<TextBox BorderThickness="0" HorizontalAlignment="Stretch" Name="textBox11" Padding="2,4" VerticalAlignment="Center" Grid.Column="6" Grid.Row="1" Grid.RowSpan="2" />
<TextBlock FlowDirection="LeftToRight" HorizontalAlignment="Stretch" Margin="6,7,0,7" Name="textBlock3" Text="结果1" TextAlignment="Center" TextTrimming="None" TextWrapping="Wrap" VerticalAlignment="Center" Grid.Column="2" />
<TextBlock FlowDirection="LeftToRight" HorizontalAlignment="Stretch" Margin="6,7,0,0" Name="textBlock7" Text="\" TextAlignment="Center" TextTrimming="None" TextWrapping="Wrap" VerticalAlignment="Center" Height="23" />
</Grid>
</Border>
<Grid Background="White" Name="GridMain" ShowGridLines="False">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="66" />
<ColumnDefinition Width="81" />
<ColumnDefinition Width="83" />
<ColumnDefinition Width="83" />
<ColumnDefinition Width="84" />
<ColumnDefinition Width="87" />
<ColumnDefinition Width="116*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition Height="30" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<TextBlock FlowDirection="LeftToRight" Grid.Column="1" HorizontalAlignment="Stretch" Name="textBlock2" Text="H1" TextAlignment="Center" TextTrimming="None" TextWrapping="Wrap" VerticalAlignment="Center" />
<TextBlock Grid.Row="2" Grid.RowSpan="2" HorizontalAlignment="Stretch" Name="textBlock5" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Stretch" FlowDirection="LeftToRight">结果<LineBreak />(B)</TextBlock>
<TextBlock Grid.Row="1" HorizontalAlignment="Stretch" Name="textBlock9" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Stretch" FlowDirection="LeftToRight">结果<LineBreak />(A)</TextBlock>
<TextBlock Grid.Column="6" HorizontalAlignment="Stretch" Name="textBlock12" Text="合计" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Center" />
<TextBlock Grid.Column="3" HorizontalAlignment="Stretch" Name="textBlock1" Text="结果3" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Center" />
<TextBlock Grid.Column="4" HorizontalAlignment="Stretch" Name="textBlock4" Text="结果4" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Center" />
<TextBlock Grid.Column="5" HorizontalAlignment="Stretch" Name="textBlock6" Text="结果5" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Center" />
<TextBox Name="textBox2" Grid.Column="1" Grid.Row="1" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" />
<TextBox Grid.Column="1" Grid.Row="2" HorizontalAlignment="Stretch" Name="textBox3" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" />
<TextBox Grid.Column="2" Grid.Row="1" HorizontalAlignment="Stretch" Name="textBox1" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" />
<TextBox Grid.Column="2" Grid.Row="2" Grid.RowSpan="2" HorizontalAlignment="Stretch" Name="textBox4" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" />
<TextBox Grid.Column="3" Grid.Row="1" HorizontalAlignment="Stretch" Name="textBox5" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" />
<TextBox Grid.Column="3" Grid.Row="2" Grid.RowSpan="2" HorizontalAlignment="Stretch" Name="textBox6" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" />
<TextBox Grid.Column="4" Grid.Row="1" HorizontalAlignment="Stretch" Name="textBox7" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" />
<TextBox Grid.Column="4" Grid.Row="2" HorizontalAlignment="Stretch" Name="textBox8" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" />
<TextBox Grid.Column="5" Grid.Row="1" HorizontalAlignment="Stretch" Name="textBox9" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" Foreground="White" Background="White">
<TextBox.BorderBrush>
<LinearGradientBrush>
<GradientStop Color="#FFA3AEB9" Offset="0" />
<GradientStop Color="#FF8399A9" Offset="0.375" />
<GradientStop Color="#FF718597" Offset="0.375" />
<GradientStop Color="Black" Offset="1" />
</LinearGradientBrush>
</TextBox.BorderBrush>
</TextBox>
<TextBox Grid.Column="5" Grid.Row="2" HorizontalAlignment="Stretch" Name="textBox10" VerticalAlignment="Stretch" BorderThickness="0" Padding="2,4" Foreground="White" Background="White">
<TextBox.BorderBrush>
<LinearGradientBrush>
<GradientStop Color="#FFA3AEB9" Offset="0" />
<GradientStop Color="#FF8399A9" Offset="0.375" />
<GradientStop Color="#FF718597" Offset="0.375" />
<GradientStop Color="Black" Offset="1" />
</LinearGradientBrush>
</TextBox.BorderBrush>
</TextBox>
<c1:C1FlexGrid Grid.Column="4" Grid.Row="2" HorizontalAlignment="Left" Margin="76,100,0,0" Name="c1FlexGrid1" VerticalAlignment="Top" Grid.ColumnSpan="3" Height="35" Width="171" />
<TextBox BorderThickness="0" HorizontalAlignment="Stretch" Name="textBox11" Padding="2,4" VerticalAlignment="Center" Grid.Column="6" Grid.Row="1" Grid.RowSpan="2" />
<TextBlock FlowDirection="LeftToRight" HorizontalAlignment="Stretch" Margin="6,7,0,7" Name="textBlock3" Text="结果1" TextAlignment="Center" TextTrimming="None" TextWrapping="Wrap" VerticalAlignment="Center" Grid.Column="2" />
<TextBlock FlowDirection="LeftToRight" HorizontalAlignment="Stretch" Margin="6,7,0,0" Name="textBlock7" Text="\" TextAlignment="Center" TextTrimming="None" TextWrapping="Wrap" VerticalAlignment="Center" Height="23" />
</Grid>
</Border>
////A0B3C6
public static SolidColorBrush _BorderBrush = new SolidColorBrush(ConvertFromString("#FFA0B3C6"));
public static double _BorderThickness = 1;
/// <summary>
/// 生成边框
/// </summary>
public static void ShowBorder(Grid gd)
{
if (gd == null)
{
return;
}
clearBorder(gd);
SolidColorBrush BorderColorBrush = _BorderBrush;
double BorderThickness = _BorderThickness;
//CreateBorder(gd, BorderColorBrush, BorderThickness);
CreateBorder2(gd, BorderColorBrush, BorderThickness);
}
/// <summary>
/// 生成边框
/// </summary>
public static void ShowBorder(Grid gd, SolidColorBrush BorderColorBrush, double BorderThickness)
{
if (gd == null)
{
return;
}
clearBorder(gd);
CreateBorder2(gd, BorderColorBrush, BorderThickness);
}
private static void clearBorder(Grid gd)
{
for (int i = gd.Children.Count - 1; i >= 0; i--)
{
if (gd.Children[i].ToString() == "System.Windows.Controls.Border")
{
Border re = gd.Children[i] as Border;
if (/*(re.Tag!=null)&&*/ (re.Tag.ToString() == "autoBorder"))
{
re = null;
gd.Children.RemoveAt(i);
}
}
}
}
private static void CreateBorder2(Grid gd, SolidColorBrush borderBrush, double borderThickness)
{
//这种做法自动将控件移动到Border里面来
var controls = gd.Children;
var count = controls.Count;
for ( int i =0; i <count; i++ )
{
var item = controls[ i ] as FrameworkElement;
var border = new Border()
{
BorderBrush = borderBrush,
BorderThickness = new Thickness(0, 0, borderThickness, borderThickness),
//BorderThickness = new Thickness(1),
Tag="autoBorder"
};
//不同的位置设置不同的边框线
var row = Grid.GetRow(item);
var column = Grid.GetColumn(item);
var rowspan = Grid.GetRowSpan(item);
var columnspan = Grid.GetColumnSpan(item);
Grid.SetRow(border, row);
Grid.SetColumn(border, column);
Grid.SetRowSpan(border, rowspan);
Grid.SetColumnSpan(border, columnspan);
gd.Children.RemoveAt(i);
border.Child = item;
gd.Children.Insert(i, border);
}
}
/// <summary>
/// 把字符串转成颜色 #A0B3C6
/// </summary>
/// <param name="colorString"></param>
/// <returns></returns>
public static Color ConvertFromString(string colorString)
{
Color color;
try
{
Line line = (Line)XamlReader.Load("<Line xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" Fill=\"" + colorString + "\" />");
color = (Color)line.Fill.GetValue(SolidColorBrush.ColorProperty);
}
catch
{
color = new Color();
}
return color;
}
public static SolidColorBrush _BorderBrush = new SolidColorBrush(ConvertFromString("#FFA0B3C6"));
public static double _BorderThickness = 1;
/// <summary>
/// 生成边框
/// </summary>
public static void ShowBorder(Grid gd)
{
if (gd == null)
{
return;
}
clearBorder(gd);
SolidColorBrush BorderColorBrush = _BorderBrush;
double BorderThickness = _BorderThickness;
//CreateBorder(gd, BorderColorBrush, BorderThickness);
CreateBorder2(gd, BorderColorBrush, BorderThickness);
}
/// <summary>
/// 生成边框
/// </summary>
public static void ShowBorder(Grid gd, SolidColorBrush BorderColorBrush, double BorderThickness)
{
if (gd == null)
{
return;
}
clearBorder(gd);
CreateBorder2(gd, BorderColorBrush, BorderThickness);
}
private static void clearBorder(Grid gd)
{
for (int i = gd.Children.Count - 1; i >= 0; i--)
{
if (gd.Children[i].ToString() == "System.Windows.Controls.Border")
{
Border re = gd.Children[i] as Border;
if (/*(re.Tag!=null)&&*/ (re.Tag.ToString() == "autoBorder"))
{
re = null;
gd.Children.RemoveAt(i);
}
}
}
}
private static void CreateBorder2(Grid gd, SolidColorBrush borderBrush, double borderThickness)
{
//这种做法自动将控件移动到Border里面来
var controls = gd.Children;
var count = controls.Count;
for ( int i =0; i <count; i++ )
{
var item = controls[ i ] as FrameworkElement;
var border = new Border()
{
BorderBrush = borderBrush,
BorderThickness = new Thickness(0, 0, borderThickness, borderThickness),
//BorderThickness = new Thickness(1),
Tag="autoBorder"
};
//不同的位置设置不同的边框线
var row = Grid.GetRow(item);
var column = Grid.GetColumn(item);
var rowspan = Grid.GetRowSpan(item);
var columnspan = Grid.GetColumnSpan(item);
Grid.SetRow(border, row);
Grid.SetColumn(border, column);
Grid.SetRowSpan(border, rowspan);
Grid.SetColumnSpan(border, columnspan);
gd.Children.RemoveAt(i);
border.Child = item;
gd.Children.Insert(i, border);
}
}
/// <summary>
/// 把字符串转成颜色 #A0B3C6
/// </summary>
/// <param name="colorString"></param>
/// <returns></returns>
public static Color ConvertFromString(string colorString)
{
Color color;
try
{
Line line = (Line)XamlReader.Load("<Line xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" Fill=\"" + colorString + "\" />");
color = (Color)line.Fill.GetValue(SolidColorBrush.ColorProperty);
}
catch
{
color = new Color();
}
return color;
}
最终结果:
不错吧,就这样了,实战关键,没有空研究。
各位有空再改装。不过打算使用ComponetOne,Radcontrols第三方组件啥的,就是ComponetOne提供了一个,结果难用的要死,写一大堆,而且灵活度差,因为FlexGrid不是可设计型容器,麻烦,不够实际。
今天开始优化了一下,对内部表格进行了布局处理。各位只要复制就可以使用;以下就是源代码,本人有代码洁癖,无论做什么事,都要
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace RIAPlatform.Common
{
/// <summary>
///
/// </summary>
public static class GridLayoutWrapper
{
//自定义属性
private static string BorderTag="autoBorder";//边框组件的Tag标识
/// <summary>
/// 清除表格容器所有的边框Border组件
/// </summary>
/// <param name="grid"></param>
private static void ClearBorder(Grid grid)
{
for (int i = grid.Children.Count - 1; i >= 0; i--)
{
if (grid.Children[i].ToString() == "System.Windows.Controls.Border")
{
Border re = grid.Children[i] as Border;
if (/*(re.Tag!=null)&&*/ (re.Tag.ToString() ==BorderTag))
{
re = null;
grid.Children.RemoveAt(i);
}
}
}
}
/// <summary>
/// 创建表格内部的边框类
/// </summary>
/// <param name="grid"></param>
/// <param name="borderBrush"></param>
private static void CreateBorder(Grid grid, SolidColorBrush borderBrush,bool isAutoLayout=true)
{
//这种做法自动将控件移动到Border里面来
var controls = grid.Children;
var count = controls.Count;
for ( int i = 0;i < count; i ++ )
{
var item = controls[ i ] as FrameworkElement;
var row = Grid.GetRow(item);
var column = Grid.GetColumn(item);
var rowspan = Grid.GetRowSpan(item);
var columnspan = Grid.GetColumnSpan(item);
var border = new Border()
{
BorderBrush = borderBrush,
//BorderThickness = new Thickness(0, 0, 1, 1),
Tag = BorderTag,
};
//根据行的位置设置边框线
if ( row == grid.RowDefinitions.Count - 1 )
{
border.BorderThickness = new Thickness(0, 0, 1, 0);
}
else
{
border.BorderThickness = new Thickness(0, 0, 1, 1);
}
//设置边框的位置
Grid.SetRow(border, row);
Grid.SetColumn(border, column);
Grid.SetRowSpan(border, rowspan);
Grid.SetColumnSpan(border, columnspan);
//设置表格包含的控件的布局方式为对齐
if ( isAutoLayout )
{
item.Width = Double.NaN;//Auto
if ( item.Tag == null )
item.Height = Double.NaN;//Auto
item.HorizontalAlignment = HorizontalAlignment.Stretch;
item.VerticalAlignment = VerticalAlignment.Center;
item.Margin = new Thickness(1, 0, 1, 0);
//关于文本控件的布局
if ( item is TextBlock )
{
( (TextBlock)item ).TextAlignment = TextAlignment.Center;
( (TextBlock)item ).TextWrapping = TextWrapping.Wrap;
}
if ( item is Control )
{
( (Control)item ).BorderThickness = new Thickness(0, 0, 0, 0);
( (Control)item ).FontWeight = FontWeights.Bold;
}
}
//将布局到Grid的元素移除,重新放置到Border里面
grid.Children.RemoveAt(i);
border.Child = item;
grid.Children.Insert(i, border);
}
}
/// <summary>
/// 设置边框
/// </summary>
/// <param name="border"></param>
/// <param name="grid"></param>
public static void ShowBorder(Border border, Grid grid, bool isAutoLayout = true)
{
if ( border == null ) return;
if ( grid == null ) return;
ClearBorder(grid);
//设置外边框的样式,保证边框的样式表格的颜色相同;
Color color=(Color)border.BorderBrush.GetValue(SolidColorBrush.ColorProperty);
SolidColorBrush borderColorBrush = new SolidColorBrush(color);
CreateBorder(grid, borderColorBrush,isAutoLayout);
}
}
}
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace RIAPlatform.Common
{
/// <summary>
///
/// </summary>
public static class GridLayoutWrapper
{
//自定义属性
private static string BorderTag="autoBorder";//边框组件的Tag标识
/// <summary>
/// 清除表格容器所有的边框Border组件
/// </summary>
/// <param name="grid"></param>
private static void ClearBorder(Grid grid)
{
for (int i = grid.Children.Count - 1; i >= 0; i--)
{
if (grid.Children[i].ToString() == "System.Windows.Controls.Border")
{
Border re = grid.Children[i] as Border;
if (/*(re.Tag!=null)&&*/ (re.Tag.ToString() ==BorderTag))
{
re = null;
grid.Children.RemoveAt(i);
}
}
}
}
/// <summary>
/// 创建表格内部的边框类
/// </summary>
/// <param name="grid"></param>
/// <param name="borderBrush"></param>
private static void CreateBorder(Grid grid, SolidColorBrush borderBrush,bool isAutoLayout=true)
{
//这种做法自动将控件移动到Border里面来
var controls = grid.Children;
var count = controls.Count;
for ( int i = 0;i < count; i ++ )
{
var item = controls[ i ] as FrameworkElement;
var row = Grid.GetRow(item);
var column = Grid.GetColumn(item);
var rowspan = Grid.GetRowSpan(item);
var columnspan = Grid.GetColumnSpan(item);
var border = new Border()
{
BorderBrush = borderBrush,
//BorderThickness = new Thickness(0, 0, 1, 1),
Tag = BorderTag,
};
//根据行的位置设置边框线
if ( row == grid.RowDefinitions.Count - 1 )
{
border.BorderThickness = new Thickness(0, 0, 1, 0);
}
else
{
border.BorderThickness = new Thickness(0, 0, 1, 1);
}
//设置边框的位置
Grid.SetRow(border, row);
Grid.SetColumn(border, column);
Grid.SetRowSpan(border, rowspan);
Grid.SetColumnSpan(border, columnspan);
//设置表格包含的控件的布局方式为对齐
if ( isAutoLayout )
{
item.Width = Double.NaN;//Auto
if ( item.Tag == null )
item.Height = Double.NaN;//Auto
item.HorizontalAlignment = HorizontalAlignment.Stretch;
item.VerticalAlignment = VerticalAlignment.Center;
item.Margin = new Thickness(1, 0, 1, 0);
//关于文本控件的布局
if ( item is TextBlock )
{
( (TextBlock)item ).TextAlignment = TextAlignment.Center;
( (TextBlock)item ).TextWrapping = TextWrapping.Wrap;
}
if ( item is Control )
{
( (Control)item ).BorderThickness = new Thickness(0, 0, 0, 0);
( (Control)item ).FontWeight = FontWeights.Bold;
}
}
//将布局到Grid的元素移除,重新放置到Border里面
grid.Children.RemoveAt(i);
border.Child = item;
grid.Children.Insert(i, border);
}
}
/// <summary>
/// 设置边框
/// </summary>
/// <param name="border"></param>
/// <param name="grid"></param>
public static void ShowBorder(Border border, Grid grid, bool isAutoLayout = true)
{
if ( border == null ) return;
if ( grid == null ) return;
ClearBorder(grid);
//设置外边框的样式,保证边框的样式表格的颜色相同;
Color color=(Color)border.BorderBrush.GetValue(SolidColorBrush.ColorProperty);
SolidColorBrush borderColorBrush = new SolidColorBrush(color);
CreateBorder(grid, borderColorBrush,isAutoLayout);
}
}
}
严格