Как в Silverlight сделать новую панель отображаемой при нажатии кнопки? - PullRequest
1 голос
/ 21 июля 2010

В моем главном окне у меня есть несколько разных кнопок и полей, которые уже работают. В основном это калькулятор, который скрывает расчеты от пользователя.

Однако я хотел бы добавить кнопку с надписью "Как это работает?" и которая сдвигает новую панель со стороны при нажатии.

Я делаю это на эмуляторе Windows Phone 7, но использую Silverlight.

1 Ответ

4 голосов
/ 21 июля 2010

Если вы хотите домашний кофе, это будет довольно тривиально. Я бы просто использовал VisualStateManager . Имеется 2 состояния для вашей панели «Как это работает».

  1. HowDoIWork_Visible
  2. HowDoIWork_Hidden

Чтобы выполнить эффект скольжения, вам нужно расположить панель за пределами экрана. Поэтому я бы добавил TranslateTransform к свойству RenderTransform панели. Его атрибут «X» изначально будет установлен на отрицательную ширину вашей панели. Для получения дополнительной информации см. TranslateTransform :

Для состояния HowDoIWork_Visible установите для свойства X объекта TranslateTransform значение 0, а для параметра Visibility - значение "Visible" или Opacity - значение "1.0".

Теперь создайте состояние HowDoIWork_Hidden , чтобы вы могли снова скрыть панель. Установите видимость панели на «Свернутый» или ее непрозрачность на «0.0». Также установите свойство X TranslateTransform обратно на Width.

Когда пользователь нажимает кнопку, вам нужно просто позвонить:

VisualStateManager.GoToState("HowDoIWork_Visible");

Чтобы снова скрыть панель:

VisualStateManager.GoToState("HowDoIWork_Hidden");

Другие идеи ...

Вы также можете адаптировать Аккордеон Silverlight Toolkit, чтобы делать то, что вы хотите: http://silverlight.codeplex.com/wikipage?title=Silverlight%20Toolkit%20Control%20Overview%20Pg1&referringTitle=Home

Если вы не застряли на эффекте скольжения, ChildWindow предоставляет простой способ открыть вид диалогового типа. http://www.wintellect.com/CS/blogs/jprosise/archive/2009/04/29/silverlight-3-s-new-child-windows.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...