Нет, к сожалению, не получилось. с помощью SetupDockablePane можно задать только изначальные параметры, затем всё это изменяется динамически и Revit сохраняет эти данные даже между перезапусками. Официального способа управлять у нас нет, но чисто теоретически можно попробовать с помощью WinAPI, правда, у меня не получилось.
В самом UserControl получал hwnd:
var hwndSource = (HwndSource)PresentationSource.FromVisual(this);
Дальше с помощью
[DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Auto)]
private static extern IntPtr GetParent(IntPtr hWnd);
добирался до Docking View (Закрепленный вид):
return GetParent(GetParent(GetParent(hwndSource.Handle)));
Здесь можно поисследовать с помощью утилиты Microsoft Spy++, её можно поставить вместе с Visual Studio
Успешно получал его размеры:
[DllImport("user32.dll")]
private static extern long GetWindowRect(IntPtr hWnd, ref Rectangle lpRect);
Дальше пытался с помощью:
[DllImport("user32.dll", EntryPoint = "SetWindowPos")]
private static extern IntPtr SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int cx, int cy, int wFlags);
const short SWP_NOMOVE = 0X2;
const short SWP_NOSIZE = 1;
const short SWP_NOZORDER = 0X4;
const int SWP_SHOWWINDOW = 0x0040;
пытался поменять ширину
SetWindowPos(hWnd, IntPtr.Zero, rect.X, rect.Y, rect.Width + 50, rect.Height, SWP_NOMOVE | SWP_NOZORDER | SWP_SHOWWINDOW);
но без особого эффекта.
Еще поковырял AdWindows и PresentationFramework, но тоже ничего толкового не нашёл :-(