Xamarin Forms: Open menu by custom button in MasterDetail based project
In my MasterDetail based project, I need a custom appearence for the navigation part for a specific detail page. To avoid rendering a custom Navigation, I set
NavigationPage.SetHasNavigationBar(this, false);
so navigation disappear an then I create by grid a background and a button like:
<Grid>
<Image Source="BackgroundImage.png"/> <!-- This should fill the grid -->
<Image Source="back_button" HorizontalOptions="StartAndExpand" Aspect="AspectFit" >
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="Handle_Tapped"/>
</Image.GestureRecognizers>
</Image>
</Grid>
Handle_Tapped should be manage the open/hide menu of master detail. I think i need to manage the IsPresented properties like
MasterDetailPage nav = new MasterDetailPage();
nav.IsPresented = true;
but that do nothing. Any help?
xamarin master-detail
add a comment |
In my MasterDetail based project, I need a custom appearence for the navigation part for a specific detail page. To avoid rendering a custom Navigation, I set
NavigationPage.SetHasNavigationBar(this, false);
so navigation disappear an then I create by grid a background and a button like:
<Grid>
<Image Source="BackgroundImage.png"/> <!-- This should fill the grid -->
<Image Source="back_button" HorizontalOptions="StartAndExpand" Aspect="AspectFit" >
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="Handle_Tapped"/>
</Image.GestureRecognizers>
</Image>
</Grid>
Handle_Tapped should be manage the open/hide menu of master detail. I think i need to manage the IsPresented properties like
MasterDetailPage nav = new MasterDetailPage();
nav.IsPresented = true;
but that do nothing. Any help?
xamarin master-detail
add a comment |
In my MasterDetail based project, I need a custom appearence for the navigation part for a specific detail page. To avoid rendering a custom Navigation, I set
NavigationPage.SetHasNavigationBar(this, false);
so navigation disappear an then I create by grid a background and a button like:
<Grid>
<Image Source="BackgroundImage.png"/> <!-- This should fill the grid -->
<Image Source="back_button" HorizontalOptions="StartAndExpand" Aspect="AspectFit" >
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="Handle_Tapped"/>
</Image.GestureRecognizers>
</Image>
</Grid>
Handle_Tapped should be manage the open/hide menu of master detail. I think i need to manage the IsPresented properties like
MasterDetailPage nav = new MasterDetailPage();
nav.IsPresented = true;
but that do nothing. Any help?
xamarin master-detail
In my MasterDetail based project, I need a custom appearence for the navigation part for a specific detail page. To avoid rendering a custom Navigation, I set
NavigationPage.SetHasNavigationBar(this, false);
so navigation disappear an then I create by grid a background and a button like:
<Grid>
<Image Source="BackgroundImage.png"/> <!-- This should fill the grid -->
<Image Source="back_button" HorizontalOptions="StartAndExpand" Aspect="AspectFit" >
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="Handle_Tapped"/>
</Image.GestureRecognizers>
</Image>
</Grid>
Handle_Tapped should be manage the open/hide menu of master detail. I think i need to manage the IsPresented properties like
MasterDetailPage nav = new MasterDetailPage();
nav.IsPresented = true;
but that do nothing. Any help?
xamarin master-detail
xamarin master-detail
asked Nov 15 '18 at 8:24
doxsidoxsi
6201234
6201234
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You should be able to change the presentation via the IsPresented
property. The problem with your attempt is, that you create a new MasterDetailpage
instead of using the active one.
Check if the current mainpage is a MasterDetailPage
and change the presentation there:
if (Application.Current.MainPage is MasterDetailPage mdp)
mdp.IsPresented = true;
Edit / important hint
The above solution works only, if the current Mainpage is a MasterDetailPage
. Otherwise you are not able to show the menu from the page.
For a custom logic / custom slide-in/out menu, checkout the Nuget-Package "SlideOverKit".
the page where I use button is a Detail page. From there I wanto present menu.
– doxsi
Nov 15 '18 at 8:46
But yourDetailPage
is part of aMasterDetailPage
. Right? If so, try the code in my answer. The code checks the current MainPage forMasterDetailpage
.
– Joehl
Nov 15 '18 at 8:59
Tx. Putting your code on my Handle_Tapped, if clause is false. So my main page is not Masterdetail.
– doxsi
Nov 15 '18 at 9:02
So I misunderstood you. Can you change the Navigation to use a MasterDetailPage as a parent? Instead of directly navigating to your DetailPage? That would be the right way. Otherwise you have to implement a custom logic to show a custom menu (I edited my answer)
– Joehl
Nov 15 '18 at 9:30
@doxsi Can you mark these answer as accepted (if it helped you). then it is easy for others to find a solution as well. Tanks
– Joehl
Nov 19 '18 at 7:54
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53315125%2fxamarin-forms-open-menu-by-custom-button-in-masterdetail-based-project%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You should be able to change the presentation via the IsPresented
property. The problem with your attempt is, that you create a new MasterDetailpage
instead of using the active one.
Check if the current mainpage is a MasterDetailPage
and change the presentation there:
if (Application.Current.MainPage is MasterDetailPage mdp)
mdp.IsPresented = true;
Edit / important hint
The above solution works only, if the current Mainpage is a MasterDetailPage
. Otherwise you are not able to show the menu from the page.
For a custom logic / custom slide-in/out menu, checkout the Nuget-Package "SlideOverKit".
the page where I use button is a Detail page. From there I wanto present menu.
– doxsi
Nov 15 '18 at 8:46
But yourDetailPage
is part of aMasterDetailPage
. Right? If so, try the code in my answer. The code checks the current MainPage forMasterDetailpage
.
– Joehl
Nov 15 '18 at 8:59
Tx. Putting your code on my Handle_Tapped, if clause is false. So my main page is not Masterdetail.
– doxsi
Nov 15 '18 at 9:02
So I misunderstood you. Can you change the Navigation to use a MasterDetailPage as a parent? Instead of directly navigating to your DetailPage? That would be the right way. Otherwise you have to implement a custom logic to show a custom menu (I edited my answer)
– Joehl
Nov 15 '18 at 9:30
@doxsi Can you mark these answer as accepted (if it helped you). then it is easy for others to find a solution as well. Tanks
– Joehl
Nov 19 '18 at 7:54
add a comment |
You should be able to change the presentation via the IsPresented
property. The problem with your attempt is, that you create a new MasterDetailpage
instead of using the active one.
Check if the current mainpage is a MasterDetailPage
and change the presentation there:
if (Application.Current.MainPage is MasterDetailPage mdp)
mdp.IsPresented = true;
Edit / important hint
The above solution works only, if the current Mainpage is a MasterDetailPage
. Otherwise you are not able to show the menu from the page.
For a custom logic / custom slide-in/out menu, checkout the Nuget-Package "SlideOverKit".
the page where I use button is a Detail page. From there I wanto present menu.
– doxsi
Nov 15 '18 at 8:46
But yourDetailPage
is part of aMasterDetailPage
. Right? If so, try the code in my answer. The code checks the current MainPage forMasterDetailpage
.
– Joehl
Nov 15 '18 at 8:59
Tx. Putting your code on my Handle_Tapped, if clause is false. So my main page is not Masterdetail.
– doxsi
Nov 15 '18 at 9:02
So I misunderstood you. Can you change the Navigation to use a MasterDetailPage as a parent? Instead of directly navigating to your DetailPage? That would be the right way. Otherwise you have to implement a custom logic to show a custom menu (I edited my answer)
– Joehl
Nov 15 '18 at 9:30
@doxsi Can you mark these answer as accepted (if it helped you). then it is easy for others to find a solution as well. Tanks
– Joehl
Nov 19 '18 at 7:54
add a comment |
You should be able to change the presentation via the IsPresented
property. The problem with your attempt is, that you create a new MasterDetailpage
instead of using the active one.
Check if the current mainpage is a MasterDetailPage
and change the presentation there:
if (Application.Current.MainPage is MasterDetailPage mdp)
mdp.IsPresented = true;
Edit / important hint
The above solution works only, if the current Mainpage is a MasterDetailPage
. Otherwise you are not able to show the menu from the page.
For a custom logic / custom slide-in/out menu, checkout the Nuget-Package "SlideOverKit".
You should be able to change the presentation via the IsPresented
property. The problem with your attempt is, that you create a new MasterDetailpage
instead of using the active one.
Check if the current mainpage is a MasterDetailPage
and change the presentation there:
if (Application.Current.MainPage is MasterDetailPage mdp)
mdp.IsPresented = true;
Edit / important hint
The above solution works only, if the current Mainpage is a MasterDetailPage
. Otherwise you are not able to show the menu from the page.
For a custom logic / custom slide-in/out menu, checkout the Nuget-Package "SlideOverKit".
edited Nov 15 '18 at 9:31
answered Nov 15 '18 at 8:38
JoehlJoehl
2,64431741
2,64431741
the page where I use button is a Detail page. From there I wanto present menu.
– doxsi
Nov 15 '18 at 8:46
But yourDetailPage
is part of aMasterDetailPage
. Right? If so, try the code in my answer. The code checks the current MainPage forMasterDetailpage
.
– Joehl
Nov 15 '18 at 8:59
Tx. Putting your code on my Handle_Tapped, if clause is false. So my main page is not Masterdetail.
– doxsi
Nov 15 '18 at 9:02
So I misunderstood you. Can you change the Navigation to use a MasterDetailPage as a parent? Instead of directly navigating to your DetailPage? That would be the right way. Otherwise you have to implement a custom logic to show a custom menu (I edited my answer)
– Joehl
Nov 15 '18 at 9:30
@doxsi Can you mark these answer as accepted (if it helped you). then it is easy for others to find a solution as well. Tanks
– Joehl
Nov 19 '18 at 7:54
add a comment |
the page where I use button is a Detail page. From there I wanto present menu.
– doxsi
Nov 15 '18 at 8:46
But yourDetailPage
is part of aMasterDetailPage
. Right? If so, try the code in my answer. The code checks the current MainPage forMasterDetailpage
.
– Joehl
Nov 15 '18 at 8:59
Tx. Putting your code on my Handle_Tapped, if clause is false. So my main page is not Masterdetail.
– doxsi
Nov 15 '18 at 9:02
So I misunderstood you. Can you change the Navigation to use a MasterDetailPage as a parent? Instead of directly navigating to your DetailPage? That would be the right way. Otherwise you have to implement a custom logic to show a custom menu (I edited my answer)
– Joehl
Nov 15 '18 at 9:30
@doxsi Can you mark these answer as accepted (if it helped you). then it is easy for others to find a solution as well. Tanks
– Joehl
Nov 19 '18 at 7:54
the page where I use button is a Detail page. From there I wanto present menu.
– doxsi
Nov 15 '18 at 8:46
the page where I use button is a Detail page. From there I wanto present menu.
– doxsi
Nov 15 '18 at 8:46
But your
DetailPage
is part of a MasterDetailPage
. Right? If so, try the code in my answer. The code checks the current MainPage for MasterDetailpage
.– Joehl
Nov 15 '18 at 8:59
But your
DetailPage
is part of a MasterDetailPage
. Right? If so, try the code in my answer. The code checks the current MainPage for MasterDetailpage
.– Joehl
Nov 15 '18 at 8:59
Tx. Putting your code on my Handle_Tapped, if clause is false. So my main page is not Masterdetail.
– doxsi
Nov 15 '18 at 9:02
Tx. Putting your code on my Handle_Tapped, if clause is false. So my main page is not Masterdetail.
– doxsi
Nov 15 '18 at 9:02
So I misunderstood you. Can you change the Navigation to use a MasterDetailPage as a parent? Instead of directly navigating to your DetailPage? That would be the right way. Otherwise you have to implement a custom logic to show a custom menu (I edited my answer)
– Joehl
Nov 15 '18 at 9:30
So I misunderstood you. Can you change the Navigation to use a MasterDetailPage as a parent? Instead of directly navigating to your DetailPage? That would be the right way. Otherwise you have to implement a custom logic to show a custom menu (I edited my answer)
– Joehl
Nov 15 '18 at 9:30
@doxsi Can you mark these answer as accepted (if it helped you). then it is easy for others to find a solution as well. Tanks
– Joehl
Nov 19 '18 at 7:54
@doxsi Can you mark these answer as accepted (if it helped you). then it is easy for others to find a solution as well. Tanks
– Joehl
Nov 19 '18 at 7:54
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53315125%2fxamarin-forms-open-menu-by-custom-button-in-masterdetail-based-project%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown