【发布时间】:2011-04-07 10:48:14
【问题描述】:
我有一个应用程序,由我的前任编写,使用 WPF,但我真的不是很熟悉。
我不得不取出他编译的 DLL,从this webpage 获取源代码并将其转换为 VB,因为编译后的 DLL 过去在桌面安装中工作,但拒绝在我们的终端上工作服务器。
所以,我采用了 C# 代码,并转换了
public static class BusyIndicatorBehavior
到
Public Module BusyIndicatorBehavior
我已经删除了顶级命名空间(命名空间 ScrumSprintMonitor.UI.Wpf.Behaviors),因为我真的不知道它应该代表什么,现在坦率地说,我不知道如何在 XAML 代码中引用它我有。
现有代码如下:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="MainWindow"
x:Name="Window"
Title="{Binding Path=WindowTitle}"
UseLayoutRounding="True"
xmlns:l="clr-namespace:myAppName"
xmlns:b="clr-namespace:BusyIndicator;assembly=BusyIndicator" WindowState="Maximized">
<Window.Resources>
<ResourceDictionary Source="ResourceDictionary.xaml" />
</Window.Resources>
<Grid x:Name="LayoutRoot">
<Grid.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF8B8B8B" Offset="0"/>
<GradientStop Color="#FF484848" Offset="1"/>
</LinearGradientBrush>
</Grid.Background>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="0" x:Name="grdFolder" b:BusyIndicatorBehavior.BusyState="{Binding Path=BusyState}">
如您所见,之前工作的 DLL 名为“BusyIndicator.DLL”,使用命名空间“b”引用,然后将 b 制成 Grid 的属性。不知何故。神奇。
有人可以猜测我如何引用我现在从现有项目中获得的“BusyIndicator”代码吗?我意识到我可能遗漏了大量重要信息,但在这里我很无知。
【问题讨论】:
-
“我如何引用我现在从现有项目中获得的“BusyIndicator”代码”是什么意思?如果上面的代码有效,你已经有一个参考。
-
对不起,我不清楚。上面的代码是现有代码,它引用了一个 DLL。此 DLL 在我们的终端服务器上不起作用。我已经获得了我认为是该 DLL 的源代码,并将其集成到我的代码中。我现在拥有的是一些工作(希望如此)的 VB 代码,但必须对其进行更改以考虑到 BusyIndicator 现在是项目不可或缺的一部分而不是外部的变化的非工作 XAML。上面的代码是原代码,不起作用。