WPF, большой палец курсора GridViewColumnHeader не изменился в пользовательском элементе управления при изменении размера? - PullRequest
1 голос
/ 25 сентября 2010

Просто получено из GridViewColumnHeader без стилей,

класс SampleHeader: GridViewColumnHeader {}

и используйте его как:

<StackPanel Orientation="Horizontal">
  <SampleHeader Content="Col1" />
  <SampleHeader Content="Col2" />
</StackPanel>

Очень просто, но во время выполнения курсор большого пальца не изменится на курсор изменения размера.

Я пытаюсь использовать стандартный, он работает правильно, теперь мне пришлось один раз запустить манекен, чтобы в SampleHeader сработал правильный курсор изменения размера.

Это ошибка или еще что-то?

1 Ответ

2 голосов
/ 25 сентября 2010

Да, похоже, это ошибка. В методе private GetCursor(int) GridViewColumnHeader есть код, который извлекает SplitCursor, выполняя что-то вроде этого:

Assembly assembly = base.GetType().Assembly;
...
cursorStream = assembly.GetManifestResourceStream("split.cur");

Предполагается, что указатель разделения будет получен из сборки PresentationFramework.dll (которая содержит класс GridViewColumnHeader).

Когда вы производите его, вызов «base.GetType (). Assembly» вернет сборку, содержащую ваш производный класс, и поэтому не найдет курсор разделения. Таким образом, курсор не изменится, когда вы наводите курсор на большой палец. Тем не менее, (невидимые) разделители по-прежнему перетаскиваемы.

...