如何在Windows 8.1 app xaml中的MenuFlyoutItem内部有一个StackPanel

时间:2015-09-04 00:35:16

标签: c# xaml windows-8.1

MenuFlyout的定义如下。我不想在MenuFlyoutItem中设置Text,我想在其中有一个可以容纳Image和TextBox的StackPanel。

<!DOCTYPE html>
<html>
<head>
<title>Greeting Service!</title>
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css' />
<style type="text/css">
#name {
font-family: "Open Sans", sans-serif;
font-weight: 700;
}
#greet {
font-family: "Open Sans", sans-serif;
font-weight: 400;
}
</style>
</head>
<body>
<center>
<?php
if (isset($_POST['language'])) {
$language = $_POST['language'];
switch ($_POST['language']) {
case "option1":
$result = "Hello, {$_POST['name']}!"; 
break;
case "option2":
$result = "你好, {$_POST['name']}!"; 
break;
case "option3":
$result = "Bonjour, {$_POST['name']}!"; 
break;
}
echo $result;
} else {
?>
<form method="post" action="">
<h1 id="name">What's Your Name?</h1>
<input type="text" name="name" placeholder="Name Here" />
<h4 id="greet">Greet me in:
<select name="language">
<option value="option1">English</option>
<option value="option2">Chinese</option>
<option value="option3">French</option>
</select>
</h4>
<input type="submit" value="Greet Me!" />
</form>
</center>
<?php
}
?>
</body>
</html>

我该怎么做?这是一个例子 From the OneDrive Windows 8.1 app

1 个答案:

答案 0 :(得分:5)

这将是一种快速而又肮脏的方式。

<MenuFlyoutItem Text="Hello" >
 <MenuFlyoutItem.Template>
  <ControlTemplate TargetType="MenuFlyoutItem">
   <StackPanel Orientation="Horizontal">
    <SymbolIcon Symbol="Clock" />
    <TextBlock Text="{TemplateBinding Text}" />                    
   </StackPanel>
  </ControlTemplate>
 </MenuFlyoutItem.Template>
</MenuFlyoutItem>

或者您可以扩展MenuflyoutItem并为图像/符号添加另一个依赖项属性,以便它不会在模板中进行硬编码。