C# Bing WPF图钉控件将切断内容

C# Bing WPF图钉控件将切断内容,c#,wpf,controltemplate,bing-maps,C#,Wpf,Controltemplate,Bing Maps,尝试选项1 如何使图钉的内容溢出图钉图标。似乎我只能显示非常小的文本,适合在图钉。我尝试过简单地将内容值设置为text,创建一个TextBlock并将TextBlock设置为content,但都得到了相同的结果 pushpin.Background = new SolidColorBrush(Colors.Yellow); pushpin.Foreground = new SolidColorBrush(Colors.Black); TextBlock ppContent = new TextB

尝试选项1

如何使图钉的内容溢出图钉图标。似乎我只能显示非常小的文本,适合在图钉。我尝试过简单地将内容值设置为text,创建一个TextBlock并将TextBlock设置为content,但都得到了相同的结果

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显示一个新图标。参考资料

    <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>
现在的问题是,我无法从代码隐藏访问
textBlock1
,将值设置为“heyyyyyyyyy”


非常感谢您的帮助,我已经在这个问题上纠缠了很长时间:(

对于选项二:将TextBlock的文本绑定更改为

Text="{TemplateBinding  Content}"
然后只需更改图钉的内容属性即可更改文本

编辑: 确保ControlTemplate具有正确的TargetType集。在您的情况下,它应该是Pushpin。在XAML中,使用其他命名空间映射(其中显示xmlns),您需要添加:

xmlns:maps="clr-namespace:Microsoft.Maps.MapControl.WPF";assembly=Microsoft.Maps.MapControl.WPF"
那么你的目标类型应该是

TargetType="maps:Pushpin"

当我这样做时,我得到了一个错误:错误1在类型“Control”上找不到静态成员“ContentProperty”。编辑了我的答案。我相信你需要在你的ControlTemplate上设置TargetType。我假设它是pushpin,但当我将其设置为类型时,我得到的类型引用找不到名为“pushpin”的公共类型。请确保你添加了任何内容您已将命名空间映射到。请看我的答案,以获取一个示例。您的名称可能/将不同于我的名称。我添加了对名为“Microsoft.Maps.MapControl.WPF”的dll的引用,但当我尝试“Microsoft.Maps.MapControl.WPF.Pushpin”时,它无法编译。表示找不到名为“Microsoft.Maps.MapControl.WPF.Pushpin”的公共类型
TargetType="maps:Pushpin"