尝试选项1
如何使图钉的内容溢出图钉图标。我似乎只能显示非常小的文本,这些文本适合图钉。我试过简单地将内容值设置为文本,创建一个TextBlock并将TextBlock设置为内容,但都会产生相同的结果。
pushpin.Background = new SolidColorBrush(Colors.Yellow);
pushpin.Foreground = new SolidColorBrush(Colors.Black);
TextBlock ppContent = new TextBlock();
//ppContent.TextWrapping = TextWrapping.WrapWithOverflow;
ppContent.Text = "heyyyyyyyy yyyyyyyyy";
ppContent.Width = 333;
ppContent.Height = 333;
pushpin.Content = ppContent ;
pushpin.Tag = pinLabel;
pushpin.Location = location;
正如您在上图所示,文字已被切断!
尝试选项2
我尝试的另一条路线是定义ControlTemplate
。通过在ControlTemplate
中定义Application.Resources
,我可以成功地让ControlTemplate显示一个没有问题的新图标:
<ControlTemplate x:Key="PushPinTemplate">
<Grid>
<TextBlock Name="textBlock1" Text="{Binding Content}" Grid.Column="0" Grid.Row="0" Foreground="Black"></TextBlock>
<Rectangle Width="10" Height="10" Margin="0 35 0 0">
<Rectangle.Fill>
<ImageBrush ImageSource="pack://application:,,,/Images/DragHandleWhite.gif"/>
</Rectangle.Fill>
</Rectangle>
</Grid>
</ControlTemplate>
并像这样应用模板;
pushpin.Template = (ControlTemplate)Application.Current.Resources["PushPinTemplate"];
现在的问题是,我无法从后面的代码访问textBlock1
以将值设置为&#34; heyyyyyyyy yyyyyyyyyy&#34;。
非常感谢任何帮助,我一直坚持这个问题:(
答案 0 :(得分:0)
对于选项二:将TextBlock的Text绑定更改为
Text="{TemplateBinding Content}"
然后只需更改图钉的Content属性即可更改文本。
编辑: 确保ControlTemplate具有正确的TargetType集。在你的情况下,它应该是图钉。在您的XAML中,使用其他命名空间映射(它表示xmlns),您需要添加:
xmlns:maps="clr-namespace:Microsoft.Maps.MapControl.WPF";assembly=Microsoft.Maps.MapControl.WPF"
那么你的TargetType应该是
TargetType="maps:Pushpin"