Ну, у меня были проблемы с использованием ICloneable в Silverlight, но мне понравилась идея серализации, я могу серализовать XML, поэтому я сделал это:
static public class SerializeHelper
{
//Michael White, Holly Springs Consulting, 2009
//michael@hollyspringsconsulting.com
public static T DeserializeXML<T>(string xmlData) where T:new()
{
if (string.IsNullOrEmpty(xmlData))
return default(T);
TextReader tr = new StringReader(xmlData);
T DocItms = new T();
XmlSerializer xms = new XmlSerializer(DocItms.GetType());
DocItms = (T)xms.Deserialize(tr);
return DocItms == null ? default(T) : DocItms;
}
public static string SeralizeObjectToXML<T>(T xmlObject)
{
StringBuilder sbTR = new StringBuilder();
XmlSerializer xmsTR = new XmlSerializer(xmlObject.GetType());
XmlWriterSettings xwsTR = new XmlWriterSettings();
XmlWriter xmwTR = XmlWriter.Create(sbTR, xwsTR);
xmsTR.Serialize(xmwTR,xmlObject);
return sbTR.ToString();
}
public static T CloneObject<T>(T objClone) where T:new()
{
string GetString = SerializeHelper.SeralizeObjectToXML<T>(objClone);
return SerializeHelper.DeserializeXML<T>(GetString);
}
}
Этот CSS должен быть достаточным:
td { min-width: 100px; }
Однако этому не всегда повинуются правильно (атрибут минимальной ширины) все браузеры (например, IE6 не нравится он много).
Редактирование: Что касается IE6 (и прежде) решение, нет того, которое работает надежно при всех обстоятельствах, насколько я знаю. Используя nowrap HTML-атрибут действительно не достигает желаемого результата, поскольку тот просто предотвращает разрывы строки в ячейке, вместо того, чтобы определить минимальную ширину.
Однако, если nowrap используется в сочетании со свойством width обычной ячейки (таким как использование ширины: 100 пкс), 100 пкс будут действовать как , минимальная ширина и ячейка все еще расширятся с текстом (из-за nowrap). Это - решение далекое от идеального, которое не может быть полностью применено с помощью CSS и, как таковое, было бы утомительно, чтобы реализовать, если у Вас есть много таблиц, Вы хотите применить это к. (Конечно, это все альтернативное решение падает, если Вы хотите иметь динамические разрывы строки в своих ячейках, так или иначе).
Другой взлом является старым 1x1 прием прозрачного пикселя. Вставьте 1x1 прозрачное изображение gif и установите его ширину в теге изображения к ширине, которую Вы хотите. Это вынудит ячейку быть, по крайней мере, столь же широкой как изображение.
что относительно этого css свойства
min-width: 100px
, но это действительно не работает в IE6, если не ошибочный
, если Вы не хотите делать это css способом, я предполагаю, что можно добавить этот атрибут
nowrap="nowrap"
в теге данных таблицы
IE6 обрабатывает ширину как минимальную ширину:
td {
min-width: 100px;
_width: 100px;/* IE6 hack */
}
, Если Вы хотите, чтобы IE6 обработал ширину как нормальные браузеры, дайте ему overflow:visible; (не случай здесь)
I had some success with:
min-width: 193px;
width:auto !important;
_width: 193px; /* IE6 hack */
Based on a combination of Vatos' response and a min-height article here: http://www.dustindiaz.com/min-height-fast-hack/