- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我能够让我的 silverlight Bing map 接受鼠标点击并将它们转换为 C# 中的图钉。现在我想在 PushPin 旁边显示一个文本作为鼠标经过图钉时出现的描述,我不知道该怎么做。有什么方法可以让我做这件事?
这是 C# 代码:
public partial class MainPage : UserControl
{ 私有(private) map 层 m_PushpinLayer;
public MainPage()
{
InitializeComponent();
base.Loaded += OnLoaded;
}
private void OnLoaded(object sender, RoutedEventArgs e)
{
base.Loaded -= OnLoaded;
m_PushpinLayer = new MapLayer();
x_Map.Children.Add(m_PushpinLayer);
x_Map.MouseClick += OnMouseClick;
}
private void AddPushpin(double latitude, double longitude)
{
Pushpin pushpin = new Pushpin();
pushpin.MouseEnter += OnMouseEnter;
pushpin.MouseLeave += OnMouseLeave;
m_PushpinLayer.AddChild(pushpin, new Location(latitude, longitude), PositionOrigin.BottomCenter);
}
private void OnMouseClick(object sender, MapMouseEventArgs e)
{
Point clickLocation = e.ViewportPoint;
Location location = x_Map.ViewportPointToLocation(clickLocation);
AddPushpin(location.Latitude, location.Longitude);
}
private void OnMouseLeave(object sender, MouseEventArgs e)
{
Pushpin pushpin = sender as Pushpin;
// remove the pushpin transform when mouse leaves
pushpin.RenderTransform = null;
}
private void OnMouseEnter(object sender, MouseEventArgs e)
{
Pushpin pushpin = sender as Pushpin;
// scaling will shrink (less than 1) or enlarge (greater than 1) source element
ScaleTransform st = new ScaleTransform();
st.ScaleX = 1.4;
st.ScaleY = 1.4;
// set center of scaling to center of pushpin
st.CenterX = (pushpin as FrameworkElement).Height / 2;
st.CenterY = (pushpin as FrameworkElement).Height / 2;
pushpin.RenderTransform = st;
}
最佳答案
您有 2 条路可走:
(1) 创建任何 UIElement 以传递给 PushPinLayer.AddChild。 AddChild 方法将接受任何 UIElement,例如这个包含 Image 和 TextBlock 的 Grid:
MapLayer m_PushpinLayer = new MapLayer();
Your_Map.Children.Add(m_PushpinLayer);
Image image = new Image();
image.Source = ResourceFile.GetBitmap("Images/Pushpin.png", From.This);
TextBlock textBlock = new TextBlock();
textBlock.Text = "My Pushpin";
Grid grid = new Grid();
grid.Children.Add(image);
grid.Children.Add(textBlock);
m_PushpinLayer.AddChild(grid,
new Microsoft.Maps.MapControl.Location(42.658, -71.137),
PositionOrigin.Center);
(2) 创建一个 native PushPin 对象以传递给 PushpinLayer.AddChild,但首先设置它的 Template 属性。请注意,PushPin 是 ContentControl,并且具有可从 XAML 中定义的资源中设置的模板属性:
MapLayer m_PushpinLayer = new MapLayer();
Your_Map.Children.Add(m_PushpinLayer);
Pushpin pushpin = new Pushpin();
pushpin.Template = Application.Current.Resources["PushPinTemplate"]
as (ControlTemplate);
m_PushpinLayer.AddChild(pushpin,
new Microsoft.Maps.MapControl.Location(42.658, -71.137),
PositionOrigin.Center);
...
<ResourceDictionary
xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<ControlTemplate x:Key="PushPinTemplate">
<Grid>
<Image Source="Images/Pushpin.png" />
<TextBlock Text="My Pushpin" />
</Grid>
</ControlTemplate>
</ResourceDictionary>
祝你好运,吉姆麦柯迪
面对面软件和阴阳钱
关于c# - Silverlight - 通过 C# 将文本添加到 Bing map 中的图钉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2805355/
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
有什么方法可以以编程方式获取 Bing 背景图像吗? Bing的API似乎没有提供这样的功能,也许还有其他方法? 最佳答案 我认为最好的方法是通过 AJAX 调用来模仿他们自己的做法。 他们调用此 U
我正在开发一个带有必应 map 的网络应用程序。我使用这种方法来更改航点图钉图标: directionsManager.setRenderOptions({ itineraryCont
我正在尝试使用单独的信息框添加多个图钉。这意味着每个图钉都会有自己的信息框,其中包含自己的信息。里面有一个循环 latlng = new Microsoft.Maps.Location(latitud
如何通过 Ajax API 将多个图钉添加到 Bing map v7..? 它们可以从数组、列表、json 或其他任何地方加载。 有人可以提供一个小例子吗?谢谢 最佳答案 您可以使用EntityCol
我正在尝试将 3d 图像添加到 Bing map ,但是我的工作电脑没有互联网连接,我想知道如何在没有互联网可用的情况下向 Bing map 添加内容。有什么方法可以下载 bing map 示例,让我
我想使用 bing search api 来获取给定查询的搜索结果计数,但是,Bing API 似乎没有返回任何包含搜索结果计数的字段。 我应该指定一些选项来请求 URL 吗?或者 Bing API
我在网站上申请了 bingmaps ajax controll v7。我面前有一个任务:应用生产 URL。整个文档使用的引用 map :http://ecn.dev.virtualearth.net/
如何去掉 Bing map 顶部的导航栏?该栏有道路和自动选择器以及鸟瞰和空中选择器。 最佳答案 Microsoft.Maps.loadModule('Microsoft.Maps.Themes.Bi
如果您在同一地理位置有“伦敦”上的 2 个图钉,API 中是否有任何内容可以将它们分开以使它们都可见? 我只能找到有关具有 PreventIconCollisions 功能的旧 map 点 API 的
我有一个带有图钉和簇的 Bing map 。 我注意到此组合中存在性能问题和错误。我已经设置了一个 demo使用 official docs 中的代码. 第一个问题:缩放后 Pin 图点击处理程序不再
我想做的是通过 ajax API 显示以英国邮政编码为中心的小型 bing 生成 map 。我相信这是可能的;我在 Bing map 文档中找不到如何将英国邮政编码转换为可以插入 map Ajax 控
鉴于 Bing API 文档主要由一个错误缠身的两页 Word 文档组成,我无法在网上找到答案。反复试验产生了不一致的结果,考虑到查询需要花钱,我宁愿不再猜测和检查。 新的“Azure 市场”Bing
如何将“你在这里”标记添加到 Bing map 控件?在手机上,这表示为正方形内的圆圈,然后有一个外圆圈表示位置精度。 看起来你可以用图钉和 polgon 来做,但我希望有一种更简单/更好的方法 最佳
有人知道为什么普通 bing.com 和 bing api 2.2 的搜索结果不同吗? 例子: http://api.search.live.net/xml.aspx?Appid=yourid&que
鸟瞰图似乎在 V8 中不再可用。 谁能确认事实确实如此,或者在新版本中是否还有任何方法可以继续使用鸟瞰图? 微软关于这方面的文档很差,所以我只是把各种来源的信息拼凑在一起。 例如: 1. 在他们的 M
我正在使用 Microsoft.Maps API(AJAX control v. 7)。 我想显示地址的 pin。 当我使用: var loc = new Microsoft.Maps.Locatio
我找到了 link text对于 Google,但我想知道 Bing 是否有等价物? 最佳答案 谷歌搜索“bing static maps api”时的第二个链接... http://social.m
我想开始将 Bing 用于一个项目,其中包括计算点之间的最短路线,以及在 map 上绘制路线等。 但是,除了 Bing Maps,还有 VirtualEarth 和 MapPoint。所有这些产品如何
我已经 checkout their page on error handling但它所拥有的只是对请求可能返回的状态代码的描述。如果我超过每天允许的请求数量,bing 是否提供信息一将返回什么? 最
我是一名优秀的程序员,十分优秀!