Чтобы сопоставить все символы, кроме перечисленных, используйте инвертированный набор символов [^…]
:
$chars = "0123456789!&',-./abcdefghijklmnopqrstuvwxyz\n";
$pattern = "/[^".preg_quote($chars, "/")."]/";
Здесь preg_quote
используется для выхода некоторые специальные символы, так что они интерпретируются как буквальные символы.
Вы также можете использовать диапазоны символов для выражения перечисленных символов:
$pattern = "/[^0-9!&',-.\\/a-z\n]/";
В этом случае не имеет значения, экранирован литерал -
в ,-.
или нет. Потому что ,-.
интерпретируется как диапазон символов от ,
(0x2C) до .
(0x2E), который уже содержит -
(0x2D) между ними.
Затем вы можете удалить те символы, которые соответствуют preg_replace
:
$output = preg_replace($pattern, "", $str);
;)
if (mainDataGrid.Items.Count > 0)
{
var border = VisualTreeHelper.GetChild(mainDataGrid, 0) as Decorator;
if (border != null)
{
var scroll = border.Child as ScrollViewer;
if (scroll != null) scroll.ScrollToEnd();
}
}
Вам нужно получить ссылку на объект ScrollViewer для вашей DataGrid. Затем вы можете управлять свойством VerticalOffset для прокрутки вниз.
Чтобы добавить еще больше бликов в ваше приложение ... вы можете добавить анимацию сплайна к прокрутке, чтобы все выглядело на одном уровне с остальной частью приложения.
Вы должны использовать метод datagrid
datagrid.ScrollIntoView(itemInRow);
или
datagrid.ScrollIntoView(itemInRow, column);
этот способ позволяет не возиться с поиском средства просмотра прокрутки и т.д.
listbox.Add(foo);
listbox.SelectedIndex = count - 1;
listbox.ScrollIntoView(listbox.SelectedItem);
listbox.SelectedIndex = -1;
для больших данных datagrid.ScrollIntoView (itemInRow, столбец); not работает нормально, тогда нам нужно использовать только один ниже:
if (mainDataGrid.Items.Count > 0)
{
var border = VisualTreeHelper.GetChild(mainDataGrid, 0) as Decorator;
if (border != null)
{
var scroll = border.Child as ScrollViewer;
if (scroll != null) scroll.ScrollToEnd();
}
}