Сворачиваемые боковые панели
Интересует, как в VS2010/C# Windows Forms сделать сворачиваемые боковые панели?
Сам я сделал подобную штуку через SplitContainer и кнопку делающую видимой или невидимой одну из его частей, и увеличивающую в размерах другую. Удобоваримо, но весьма далеко от идеала. =\ Есть готовые решения или нужно писать свой контрол?
на WPF можно попробовать
Но если расскажешь - как, буду премного благодарен. Давно собираюсь перейти на WPF, но пока она меня только пугает...
Цитата: EqKeeper
WPF еще нужно изучить, а учить пока не по чему. :)
Но если расскажешь - как, буду премного благодарен. Давно собираюсь перейти на WPF, но пока она меня только пугает...
Но если расскажешь - как, буду премного благодарен. Давно собираюсь перейти на WPF, но пока она меня только пугает...
я сам только начал осваивать:) вообще, про WPF я смотрел в книге Троелсен Э. Язык программирования С# и платформа NET(4изд)
private void treeViewVisibilityButton_Click(object sender, EventArgs e)
{
bool collapsed = (sender as Label).Name == "hideFileListButton";
splitContainer1.Panel1Collapsed = collapsed;
hideFileListButton.Visible = !collapsed;
showFileListButton.Visible = collapsed;
}
К сожалению, если сворачиваемых панелей нужно несколько, то под каждую из них придется делать SplitContainer. Впрочем вторую, видимую его часть, можно вообще ограничить одной лишь кнопкой. Но это уже извращения, которые, обычно, не нужны.
А дальше ставим сплиту Dock Fill и наслаждаемся результатом.
----
А если нет нужды в менябельности ширины этих панелей, то можно обойтись и без SplitContainer'а и всего одним лэйблом: достаточно задать соседним элементам Dock в значении Fill (или аналогичный сворачиваемой панели), а при щелчке на label менять значение visible убираемого элемента.