Как уже упоминали другие, вы можете измерить строки в толстых клиентских приложениях, используя System.Drawing.Graphics.MeasureString
, но, поскольку вы упоминаете, что хотите разместить его в теге HTML div, было бы целесообразно разрешить браузеру обрабатывать пользовательский интерфейс с помощью CSS.
<html>
<head>
<title>C# - How can I cut a string at its end to fit in a div? </title>
<style type="text/css">
.ellipsis li
{
display: block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 166px;
}
</style>
</head>
<body>
<ul class="ellipsis">
<li>Take a look at the new Volksxxxxx</li>
<li>John Doe is looking for a joxxxxx</li>
<li>Microsoft is launching the nxxxxx</li>
</ul>
</body>
</html>
Я использовал тег неупорядоченного списка (UL) вместо div, поскольку ваш список образцов начинается с символа маркера. Подобный CSS будет применяться к тегам DIV. И хотя весь браузер может быть создан для обрезки содержимого, не все браузеры поддерживают нестандартное переполнение текста: стиль многоточия.