我是windows phone 8 developpement的初学者,我需要创建一个标签系统(有点像Android上的slidingDrawer)。 我自己解释一下,我已经实现了一个xaml接口,如下所示:
http://img15.hostingpics.net/pics/974529onglet.png
此界面的代码:
<StackPanel VerticalAlignment="top" Orientation="Horizontal" Height="402" Width="480">
<StackPanel Width="161" Margin="0,10,0,0" >
<StackPanel Height="50" Background="DarkCyan">
<TextBlock Height="50" Text="Qualité orale" Foreground="White" />
</StackPanel>
<StackPanel Height="50" >
<TextBlock Text="Compréhension" Foreground="White" />
</StackPanel>
<StackPanel Height="50">
<TextBlock Text="Général" Foreground="White"/>
</StackPanel>
<StackPanel Height="50">
<TextBlock Text="Fichiers relatifs" Foreground="White"/>
</StackPanel>
<StackPanel Height="50">
<TextBlock Text="Le conférencier" Foreground="White"/>
</StackPanel>
<StackPanel Height="50">
<TextBlock Text="Questions" Foreground="White"/>
</StackPanel>
</StackPanel>
我想在这里做的是当用户触摸堆叠面板时,堆叠面板会改变颜色,右边的灰色内容也会改变。
你能帮我解决问题吗?
提前谢谢
答案 0 :(得分:0)
只需将Tap属性添加到TextBlocks并处理后面代码中的事件。
例如:
<TextBlock Text="Questions"
Foreground="White"
Tap="MyEventHandler"
/>
然后,您可能希望将Name属性赋予StackPanels,以便您可以在代码中引用它。像这样:
<StackPanel Height="50" Name="QuestionsStackPanel">
<TextBlock Text="Questions" Foreground="White"/>
</StackPanel>
在代码隐藏文件中,visual studio可以自动生成方法存根,如果不是,它应该是这样的。
private void MyEventHandler(object sender, System.Windows.Input.GestureEventArgs e)
{
//Make changes here
QuestionsStackPanel.Background = Colors.Blue
}
从这里,您可以更改特定标签的颜色和您提到的灰色区域。
答案 1 :(得分:0)
首先,仅仅为了信息,“android选项卡界面”与“UI(metro)”界面不一致。这不是非常重要,有关“Ui设计风格的更多信息,您可以here为您的应用设计样式:d
对于您的问题,在您的Xaml中,您可以添加一个事件来检测点击(或“TextBlock”中的其他事件。
例如,您可以在“Code.xaml”中的所有按钮中添加“点按事件”(另外,您可以添加“名称”属性以便在以后轻松查找您的控件):
<StackPanel VerticalAlignment="top" Orientation="Horizontal" Height="402" Width="480">
<StackPanel Name ="Global_Onglets" Width="161" Margin="0,10,0,0" >
<StackPanel Height="50" Background="DarkCyan">
<TextBlock Height="50"
Text="Qualité orale"
Name="TextBlock_Quality"
Tap="MyPersonalEvent"
Foreground="White" />
</StackPanel>
<StackPanel Height="50" >
<TextBlock Text="Compréhension"
Name="TextBlock_Comprehension"
Tap="MyPersonalEvent"
Foreground="White" />
</StackPanel>
<StackPanel Height="50">
<TextBlock Text="Général"
Name="TextBlock_General"
Tap="MyPersonalEvent"
Foreground="White"/>
</StackPanel>
</StackPanel>
</StackPanel>
并且,在“code.cs”中,您可以创建事件方法:
/// <summary>
/// Event handler called by Textblock Tap.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void MyPersonalEvent(object sender, EventArgs e)
{
// Get, the current textblock where called the event.
TextBlock CurrentTextBlock = sender as TextBlock;
// Check just the clicked textBlock, for attributes specific colors..
foreach (TextBlock textblock in Global_Onglets.Children)
{
if (textblock == sender)
{
// Attribute secific color for this tap textblock;
}
// Attribute a "normal" color for alls others textBlock..
}
}
您可以获得有关活动here !!
的更多详情另外,我看到你用法语创建你的应用程序。但是,如果你想要一本关于“本地化你的应用程序”的精彩教程here,你可以轻松将你的应用程序本地化为其他语言(以及其他国家的distrube ...)...更好的思考之前,以后的任何责任。 :d