Bing WPF图钉控件切断了内容

时间:2014-05-23 17:55:13

标签: c# wpf controltemplate bing-maps

尝试选项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;

enter image description here

正如您在上图所示,文字已被切断!

尝试选项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;。

非常感谢任何帮助,我一直坚持这个问题:(

1 个答案:

答案 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"