Лента с приложения на Windows 8 върху избран елемент (като стартов екран)

Това, което искам да постигна в моето приложение, е същото като това, което прозорците направиха на стартовия си екран. Когато изберете елемент, отворете лентата с приложения и покажете още елементи. Когато просто отворите лентата с приложения, когато не сте избрали нищо, не показвайте тези елементи.

Дотук добре и работи както искам. Но има някакъв проблем, който не мога да реша. Когато изберете елемент на началния екран, не можете да затворите лентата с приложения, когато щракнете с десния бутон където и да е на екрана. Трябва да премахнете отметката от елемента.

Просто не мога да разбера как да деактивирам това щракване с десен бутон, за да затворя лентата с приложения. Защото тогава съм в състояние, в което имам избран елемент, но нямам лента с приложения. не искам това...

Благодаря предварително!


person SamVerschueren    schedule 11.03.2013    source източник
comment
Може ли потребителят да избере само един елемент или няколко елемента във вашия сценарий?   -  person Jennifer Marsman - MSFT    schedule 12.03.2013


Отговори (3)


Има свойство, наречено IsSticky

това може да се използва, за да спре вашата лента с приложения от свиване.

другата опция, която имате, е да се свържете към Затворено събитие и го принудете да отвори отново.

Въз основа на екрана, който предоставихте, известен още като потребителския интерфейс на Metro :) бих казал, че създавате страница, която просто хоства други плочки. Направих подобно нещо в едно от моите приложения, погледнете http://apps.microsoft.com/windows/en-gb/app/cineworld/7adfde16-33c3-4b51-b758-00366325288d

Разгледайте Coding4Fun или Калисто

person Hermit Dave    schedule 11.03.2013
comment
Това не работи напълно, както искам да бъде. Когато потребителят щракне с десния бутон на мишката, лентата с приложения ще изчезне. IsSticky само гарантира, че лентата с приложения няма да се затвори, когато потребителят натисне левия бутон на мишката. - person SamVerschueren; 11.03.2013
comment
друг вариант е да използвате затворено събитие и да отворите отново. няма други опции. поне не използвам appbar - person Hermit Dave; 11.03.2013
comment
Някаква идея как Windows го е внедрил в началния екран? Готов съм да използвам друг компонент, ако той работи по-добре в моя случай на употреба... - person SamVerschueren; 11.03.2013
comment
Нямам представа какво имаш предвид... начален екран? екранна снимка на това, което имате предвид, всъщност може да ми помогне.. в много бавно състояние днес :| - person Hermit Dave; 11.03.2013
comment
Ето екранна снимка на началния екран, за който имам предвид. Ако натиснете плочка с десния бутон на мишката, лентата с приложения ще се появи и не е възможно да премахнете лентата с приложения, докато не премахнете отметката от плочката. - person SamVerschueren; 12.03.2013

Задайте свойството AppBar IsSticky="true" и обработете събитието RightTapped във вашия GridView/ListView, а в манипулатора на събития задайте e.Handled = true;< /strong>
Това ще спре маршрутизираното събитие с десен клик/плъзгане да достигне до страницата и няма да затвори AppBar.

person Martin Suchan    schedule 16.05.2013

Можете да замените функцията hide() на лентата с приложения и да я замените с нещо подобно:

appBar.hide = function () {
        /// <signature helpKeyword="WinJS.UI.AppBar.hide">
        /// <summary locid="WinJS.UI.AppBar.hide">
        /// Hides the AppBar, if visible, regardless of other state
        /// </summary>
        /// </signature>
        // Just wrap the private one
        var listView = document.getElementById("yourListView").winControl;
        var count = listView.selection.count();

        if(count <1)
            this._hide();
}

Не е чудесно решение, но работи като чар :)

person joshnikhil234    schedule 15.06.2013