Filipe_O Posted July 5, 2012 at 10:11 AM Report #467379 Posted July 5, 2012 at 10:11 AM Boas Estou a "finalizar" um projecto para windows phone, e já coloquei aqui algumas duvidas. Para não colocar uma duvida por tópico, aqui vão: 1) Tenho uma listbox, e nessa listbox apresento resultados de um formulário.. Gostaria que item da listbox fosse um link.. encontrei este tuturial: Na função construtora, defino este evento: listBox1.SelectedIndexChanged += new EventHandler(listBox1_SelectedIndexChanged); E na função do evento, digo: void listBox1_SelectedIndexChanged(object sender, EventArgs e) { ListBox lb = sender as ListBox; if (lb != null && lb.SelectedItem != null) { string url = lb.SelectedItem as string; if (!string.IsNullOrEmpty(url)) { Process.Start(url); } } } Até eu que não sou de programação percebo este código... acontece que na minha função construtora não tenho a hipotese de criar um evento SelectedIndexChanged.. Terei algo mal? Procuro por outra maneira? 2) Tenho uma imagem que é um mapa. Esse mapa tem esferas desenhadas, que são links Essas esferas, abrem (tornam visível) uma barra no canto direito do ecrã. Eu tenho a opção de o utilizador navegar pelo mapa. E a posição dessa barra, está definida em relação ao mapa e não em relação ao ecrã do telemóvel. Ora, escusado será dizer, que quando o utilizador move o mapa, por exemplo, para a direita, ao carregar numa das esferas não se vê a barra. Percebem? Ou seja, teria de dizer que a posição da barra é em relação ao ecrã do telemóvel, e não, em relação ao mapa. Como faço isso? Para o visual estou a utilizar o microsoft expression blend. Obrigado
petvetbr Posted July 5, 2012 at 02:10 PM Report #467449 Posted July 5, 2012 at 02:10 PM 1) Tenho uma listbox, e nessa listbox apresento resultados de um formulário.. Gostaria que item da listbox fosse um link.. encontrei este tuturial: Na função construtora, defino este evento: listBox1.SelectedIndexChanged += new EventHandler(listBox1_SelectedIndexChanged); E na função do evento, digo: void listBox1_SelectedIndexChanged(object sender, EventArgs e) { ListBox lb = sender as ListBox; if (lb != null && lb.SelectedItem != null) { string url = lb.SelectedItem as string; if (!string.IsNullOrEmpty(url)) { Process.Start(url); } } } Até eu que não sou de programação percebo este código... acontece que na minha função construtora não tenho a hipotese de criar um evento SelectedIndexChanged.. Terei algo mal? Procuro por outra maneira? Existe o SelectionChanged que pode fazer isto. 2) Tenho uma imagem que é um mapa. Esse mapa tem esferas desenhadas, que são links Essas esferas, abrem (tornam visível) uma barra no canto direito do ecrã. Eu tenho a opção de o utilizador navegar pelo mapa. E a posição dessa barra, está definida em relação ao mapa e não em relação ao ecrã do telemóvel. Ora, escusado será dizer, que quando o utilizador move o mapa, por exemplo, para a direita, ao carregar numa das esferas não se vê a barra. Percebem? Ou seja, teria de dizer que a posição da barra é em relação ao ecrã do telemóvel, e não, em relação ao mapa. Como faço isso? Para o visual estou a utilizar o microsoft expression blend. Neste caso seria interessante ver como está o XAML da sua tela, assim pela explicação está um pouco difícil de entender como isto está codificado. Fernando Lage Bastos - MCP/MCTS/MCPD
Filipe_O Posted July 5, 2012 at 02:45 PM Author Report #467457 Posted July 5, 2012 at 02:45 PM (edited) Tenho uma pagina com uma listob.E quero que ao carregar num item da listbox, abra outra pagina, com dados (fornecidos pela mesma função que atribui links a cada item).Esses dados estarão em caixas de texto. Página de origem: private void lista_SelectionChanged(object sender, SelectionChangedEventArgs e) { var opcao = ""; opcao = (sender as ListBox).SelectedValue.ToString(); NavigationService.Navigate(new Uri("/animal.xaml?opcao=" + opcao, UriKind.Relative)); } Página de destino: protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedTo(e); if(NavigationContext.QueryString.TryGetValue("opcao",out opcao)) textBlock1.Text = opcao; } Os valores são dados por uma base de dados, que na mesma tabela tem o nome (texto da opção), numero, etc.. Chamo os dados por uma query num web service. Edited July 11, 2012 at 02:22 PM by Filipe_O
Filipe_O Posted July 11, 2012 at 01:39 PM Author Report #468349 Posted July 11, 2012 at 01:39 PM ninguem me sabe ajudar?
petvetbr Posted July 11, 2012 at 03:17 PM Report #468374 Posted July 11, 2012 at 03:17 PM Qual é a sua dúvida? Não ficou muito claro, você somente explicou o que está fazendo até agora. Fernando Lage Bastos - MCP/MCTS/MCPD
Filipe_O Posted July 11, 2012 at 04:07 PM Author Report #468380 Posted July 11, 2012 at 04:07 PM (edited) Agora já a consegui resolver =) A questão do XNA: Eu tenho a opção de o utilizador navegar pelo mapa.E a posição dessa barra, está definida em relação ao mapa e não em relação ao ecrã do telemóvel. Ora, escusado será dizer, que quando o utilizador move o mapa, por exemplo, para a direita, ao carregar numa das esferas não se vê a barra. Percebem? Ou seja, teria de dizer que a posição da barra é em relação ao ecrã do telemóvel, e não, em relação ao mapa. Como faço isso? A estrutura que tenho é esta Está tudo dentro de um ContentPanel.. Já tentei por tudo menos a barra, no content panel, não nunciona... já tentei por só a barra também não funciona... Edited July 11, 2012 at 05:26 PM by Filipe_O
Filipe_O Posted July 16, 2012 at 03:17 PM Author Report #468878 Posted July 16, 2012 at 03:17 PM (edited) Neste momento, inclui o mapa e os botões a um canvas... Se aplicar o MouseDragElementBehavior á imagem, ao mover a imagem, os botões não a acompanham (mas se não mexer no mapa, ou se carregar no botão, este funciona) Se aplicar o MouseDragElementBehavior ao canvas, os links movem-se com a imagem, mas não funcionam (o evento não é executado) Se colocar um evento no expression blend, para um botão, funciona (com o comportamento a afectar o canvas, o botão move-se, e ao carregar o evento que coloquei no expression blend, é executado). Porque será que os eventos que coloco no visual studio (c#), não funcionam? Se o comportamento não estiver a afectar o canvas, mas sim, a imagem, a programação funciona :S Sabem-me ajudar? Edited July 23, 2012 at 11:40 AM by Filipe_O
Filipe_O Posted July 23, 2012 at 11:08 AM Author Report #469739 Posted July 23, 2012 at 11:08 AM (edited) O problema é que para funcionar tudo como um todo, preciso de dizer que a imagem e os links, são "child" do canvas.. private void phoneApplicationPage_Orientationchanged(object sender, OrientationchangedEventArgs e) { if ((Orientation == PageOrientation.PortraitUp) || (Orientation == PageOrientation.PortraitDown)) (...) Image imagem_mapa = new Image(); Ellipse _14 = new Ellipse(); _14.Width = 44; _14.Height = 41; Canvas.SetLeft(_14, 56); Canvas.SetTop(_14, 299); this.canvas_mapa.Children.Add(imagem_mapa); this.canvas_mapa.Children.Add(_14); MessageBox.Show("ADS"); } XAML: <Canvas Height="722" Width="454" Canvas.Left="22" Name="canvas_mapa"> <i:Interaction.Behaviors> <el:MouseDragElementBehavior/> </i:Interaction.Behaviors> A declaração está na função da orientationchanged, por um outro problema. A questão é: Ele sabe que o elemento "_14" no c# corresponde ao elemento do "_14", do xaml? Edited July 24, 2012 at 01:54 PM by Filipe_O
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now