G'day,
Я пытаюсь смоделировать старый графический интерфейс XBox 360 с помощью скользящих вкладок (Помните, вы нажимаете влево или вправо, и содержимое будет перемещаться в зависимости от вкладки?) В любом случае, в настоящий момент у меня это работает хорошо Однако я не могу заставить работать "анимацию".
Когда пользователь нажимает стрелку влево или вправо, будет вызван мой метод OpenWindow (int iIndex), где iIndex - это индекс следующего или предыдущего «окна», в которое нужно вставить. (Не окно ... каждый «Окно» - это структура с родительским элементом управления сеткой, содержащим кнопку, и меньшим элементом управления сеткой, который содержит содержимое окна.)
Теперь моя проблема заключается в изменении размера элемента управления родительской сетки. Когда он вставляется, его размер изменяется путем вызова mygrid.Width + = 1; Это работает, но я не вижу, чтобы это происходило в течение определенного периода времени, оно просто немного отстает, а затем изменяется до необходимой ширины. Принимая во внимание, что если я вызову this.Width + = 1 в том же методе (это главное окно программы), то окно изменит размер, как я хочу, чтобы размер сетки изменился. Я пробовал UpdateLayout (), но безрезультатно. Это говорит о том, что с моим временем все в порядке.
Если бы кто-нибудь мог помочь, это было бы очень признательно.
Вот мой метод OpenWindow ...
public void OpenWindow(int iIndex)
{
int iInterval = 1;
for (int i = (int)myDict[iIndex].Shell.Width; i < (int)stack_outter.Width; i += iInterval)
{
myDict[iIndex].Shell.Width += 1;
myDict[iIndex].Shell.UpdateLayout();
System.Threading.Thread.Sleep(1);
}
myDict[iIndex].Shell.Width = stack_outter.Width - (BUTTON_WIDTH * (myDict.Count - 1));
}
myDict - это словарь, Shell - это сетка, которую я пытаюсь оживить при изменении размера. Извините за код, он грязный, мой код всегда взламывается, когда я пытаюсь заставить что-то работать:)
Спасибо
Ash
Neried Web Solutions