作成日: 2020/01/20 最終更新日: 2020/01/20
文書種別
使用方法
詳細
C1FlexGridFilter拡張クラスを使用したフィルタ機能のエディタで、値フィルタのリストの文字色を変更するには、C1FlexGridFilter.EditorOpenedイベントを追加して、イベント内でListBox型の要素を取得し、そのスタイルを設定します。
◎サンプルコード(C#)
◎サンプルコード(C#)
using C1.WPF;
using C1.WPF.FlexGrid;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
var gridFilter = new C1FlexGridFilter(_grid);
gridFilter.EditorOpened += GridFilter_EditorOpened;
}
private void GridFilter_EditorOpened(object sender, EventArgs e)
{
var filter = sender as C1FlexGridFilter;
var editor = filter.Editor;
editor.Height = 260;
IList<DependencyObject> list = new List<DependencyObject>();
VTreeHelper.GetChildrenOfType(editor, typeof(ListBox), ref list);
(list[0] as ListBox).MaxHeight = 220;
(list[0] as ListBox).RequestBringIntoView += ListBox_RequestBringIntoView;
}
private void ListBox_RequestBringIntoView(object sender, RequestBringIntoViewEventArgs e)
{
foreach (CheckBox item in FindVisualChildren(((sender) as ListBox)))
{
item.Foreground = Brushes.Red;
}
}
public static IEnumerable FindVisualChildren(DependencyObject depObj) where T : DependencyObject
{
if (depObj != null)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
if (child != null && child is T)
{
yield return (T)child;
}
foreach (T childOfChild in FindVisualChildren(child))
{
yield return childOfChild;
}
}
}
}
using C1.WPF.FlexGrid;
private void Window_Loaded(object sender, RoutedEventArgs e)
{
var gridFilter = new C1FlexGridFilter(_grid);
gridFilter.EditorOpened += GridFilter_EditorOpened;
}
private void GridFilter_EditorOpened(object sender, EventArgs e)
{
var filter = sender as C1FlexGridFilter;
var editor = filter.Editor;
editor.Height = 260;
IList<DependencyObject> list = new List<DependencyObject>();
VTreeHelper.GetChildrenOfType(editor, typeof(ListBox), ref list);
(list[0] as ListBox).MaxHeight = 220;
(list[0] as ListBox).RequestBringIntoView += ListBox_RequestBringIntoView;
}
private void ListBox_RequestBringIntoView(object sender, RequestBringIntoViewEventArgs e)
{
foreach (CheckBox item in FindVisualChildren(((sender) as ListBox)))
{
item.Foreground = Brushes.Red;
}
}
public static IEnumerable FindVisualChildren(DependencyObject depObj) where T : DependencyObject
{
if (depObj != null)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
if (child != null && child is T)
{
yield return (T)child;
}
foreach (T childOfChild in FindVisualChildren(child))
{
yield return childOfChild;
}
}
}
}
旧文書番号
84860