xaml 与cs 关联问题

sky04000 2008-12-01 07:50:33
打开一个silverlight例子,但是xaml文件与cs文件没有关联上!请各位高手赐教~
...全文
499 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sky04000 2008-12-02
  • 打赏
  • 举报
回复
不好意思,我还是没有找到您说的函数。您说的对我的确用的是2.0看来您是一位行家啊。还是希望您能赐教,如果能留下联系方式不胜感激!
sky04000 2008-12-02
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Shapes;
using SilverlightApplication2;

namespace SilverlightAirlines
{
/// <summary>
/// Map of cities that displays flights
/// </summary>
[XamlResource("SilverlightAirlines.Map.Map.xaml")]
public class Map : MixControl
{

Point lastMousePos = new Point();
double _zoom = 1;
bool mouseButtonPressed = false;
bool mouseIsDragging = false;
Point dragOffset;
Point currentPosition;
double c1left = 1;
double c1top = 1;


public double ZoomFactor
{
get { return _zoom; }
set { _zoom = value; }
}


/// <summary>
/// Name of the container Canvas in the template
/// </summary>
private const string ContainerName = "Container";

/// <summary>
/// Name of the ScaleTransform in the template
/// </summary>
private const string ScaleTransformName = "ScaleTransform";
private MapPointCollection _points;
private City _selectedOrigin;
private MapPoint _origin;
private City _selectedDestination;
private MapPoint _destination;
private Canvas _pointContainer;

/// <summary>
/// Collection of MapPoints shown on the map
/// </summary>
public MapPointCollection Points
{
get
{
return _points;
}
}

/// <summary>
/// Origin of the currently drawn flight
/// </summary>
public City Origin
{
get
{
return _selectedOrigin;
}
}

/// <summary>
/// Destination of the currently drawn flight
/// </summary>
public City Destination
{
get
{
return _selectedDestination;
}
}

/// <summary>
/// Container to display the points
/// </summary>
internal Canvas PointContainer
{
get
{
if (_pointContainer == null)
{
Update();
}
return _pointContainer;
}
}

/// <summary>
/// Event raised when a destination is selected (or when a destination was
/// selected but no longer is)
/// </summary>
public event EventHandler DestinationSelected;

/// <summary>
/// Constructor
/// </summary>
public Map()
: base()
{
// Page.Root.SetupMap(this);
_points = new MapPointCollection(this);
_path = new List<MapPathSegment>();
Root.MouseLeave += new MouseEventHandler(Root_MouseLeave);

// Create the map points
foreach (City city in FlightService.GetDestinations())
{
Points.Add(city);
}

// Create the selection line
_selection = new MapSelection();
_selection.SetValue(Canvas.ZIndexProperty, 5);
_selection.Visibility = Visibility.Collapsed;
_pointContainer.Children.Add(_selection);


//-------------------
c2.MouseMove += delegate(object sender, MouseEventArgs e)
{
if (mouseButtonPressed)
{
mouseIsDragging = true;
}
//this.lastMousePos = e.GetPosition(this.msi);
this.lastMousePos = e.GetPosition(this);
};
sky04000 2008-12-02
  • 打赏
  • 举报
回复
<Canvas
xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="SilverlightAirlines.Map.Map"
>

<!-- Container to draw the map and points at their original size -->
<Canvas x:Name="Container" Width="1008.333" Height="465.29" Canvas.Top="0" Canvas.Left="0">
<Path x:Name="Ocean" Width="1008.333" Height="465.29" Canvas.Left="0" Canvas.Top="0" Stretch="Fill" Data="F1 M43.666999,146.71033 C43.666999,146.71033 397.889,147.036 397.889,147.036 L1036,147.036 C1040.42,147.036 1044,151.344 1044,156.658 L1044,602.378 C1044,607.692 1040.42,612 1036,612 L44,612 C39.5817,612 36,607.692 36,602.378 36,602.378 35.666999,156.33333 35.666999,156.33333 35.666999,151.01933 39.248699,146.71033 43.666999,146.71033 z">
<Path.Fill>
<LinearGradientBrush StartPoint="0.345465,-0.0883868" EndPoint="0.607357,1.18031">
<LinearGradientBrush.GradientStops>
<GradientStop Color="#FEBEE7FB" Offset="0"/>
<GradientStop Color="#FE0096FF" Offset="1"/>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Path.Fill>
</Path>


<Canvas x:Name="c2" Background="AliceBlue" Width="800" Height="600">
<Canvas x:Name="c3" >

<MultiScaleImage UseSprings="False"
x:Name="msi"
ViewportWidth="1.0"
Source="/map2/info.bin" Cursor="Hand" Width="800" Height="600" >
</MultiScaleImage>

<Button x:Name="p1" Height="10" Width="10" Margin="0,0,0,0" RenderTransformOrigin="0.523999989032745,0.49099999666214" >
<Button.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform AngleX="0" AngleY="0"/>
<RotateTransform Angle="0"/>
<TranslateTransform X="100" Y="200"/>
</TransformGroup>
</Button.RenderTransform>
</Button>

<Canvas.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0.9" ScaleY="0.9"/>
<SkewTransform AngleX="0" AngleY="0"/>
<RotateTransform Angle="0"/>
<TranslateTransform X="0" Y="0"/>
</TransformGroup>
</Canvas.RenderTransform>

</Canvas>
<Canvas x:Name="c1">
<Button Height="49.001" Width="92.919" Click="Button_Click" x:Name="b1" Margin="0,0,0,0" RenderTransformOrigin="0.523999989032745,0.49099999666214" Canvas.Left="158.081" Canvas.Top="295.002" >
<Button.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="359.909"/>
<TranslateTransform/>
</TransformGroup>
</Button.RenderTransform>
</Button>
<Button Height="50" Width="93" Content="Button" x:Name="b2" Click="b2_Click" Canvas.Left="158" Canvas.Top="195" Background="#FFC2852C"/>


</Canvas>

</Canvas>
sky04000 2008-12-02
  • 打赏
  • 举报
回复
==
blueterry 2008-12-02
  • 打赏
  • 举报
回复
你最好把源代码贴上来看看,估计是类名大小写或是全角半角的问题。
sky04000 2008-12-02
  • 打赏
  • 举报
回复
现在要麻烦你了!
我在xaml文件中是指定了命名空间和类,但是xaml中的对象不能使用。编译时提示msi上下文找不到!您看怎么办!
blueterry 2008-12-02
  • 打赏
  • 举报
回复
刚刚试了一下2.0,发现变化还是挺大的,不过是变得更加简单了, 呵呵

如何让xaml与cs关联的是这样的:

1、在xaml文件中
第一行是 <UserControl x:Class="PKG.AClassName"

这里的AClassName就是cs文件中对应的类名称,就是如何跟cs关联的关键所在

PKG 是cs文件中的命名空间

2、在你的cs文件中 你会看到
...
namespace PKG
{
public partial class AClassName : xxxx
{

...

blueterry 2008-12-02
  • 打赏
  • 举报
回复
呵呵,客气了,我是对silverlight比较感兴趣,也做过一些东西,有什么问题给我发消息吧。
blueterry 2008-12-01
  • 打赏
  • 举报
回复
Silverlight.createObjectEx
就在你的cs文件里头,如果有多个cs文件,则在最主要的那个里头
你可以用你的文本编辑器搜一下,ctrl-f,
可能不是完全一样,关键就是这个createObjectEx,他是所有silverlight初始化的入口点。
sky04000 2008-12-01
  • 打赏
  • 举报
回复
不好意思在那里找到这个文件谢谢
刚学
blueterry 2008-12-01
  • 打赏
  • 举报
回复
var xamlSrc = "axamlfile.xaml"
Silverlight.createObjectEx({
source: xamlSrc,
parentElement: document.getElementById('SilverlightPlugInHost'),
id: 'SilverlightPlugIn',
properties: {
width: '480',
height: '380',
background:'#333',
isWindowless: 'false',
version: '1.0'
},
events: {
onError: null,
onLoad: Silverlight.createDelegate(scene, scene.handleLoad)
},
context: null
});

这是silverlight 1.0 的例子,相信跟2.0区别不大,
xamlSrc 是一个变量定义了xaml文件的路径
Silverlight.createObjectEx 生成 silverlight 页面,第一个参数就是调用的xamlSrc 即与对应的xaml关联

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧