【问题标题】:How to reuse usercontrols accrossdifferent WPF projects如何在不同的 WPF 项目中重用用户控件
【发布时间】:2011-04-25 11:44:20
【问题描述】:

我有一个 WPF 项目,说应用程序 1,其中定义了一个用户控件..我想在另一个 WPF 项目中重新使用这个用户控件,我将如何做到这一点??

两个项目都绑定到同一个源代码管理中

【问题讨论】:

    标签: c# wpf wpf-controls binding


    【解决方案1】:

    我不是专家,但让我试试。确保您的用户控件可以从另一个项目访问,即存在对定义此控件的库的引用。然后,在您希望重用此控件的地方,您需要定义命名空间并将您的控件用作任何其他控件。例如

    <Window x:Class="Test.Window1" Title="Window1" Height="300" Width="600"
    ...
    xmlns:userControls="clr-namespace:MySolution.MyPresentation.MyControls;assembly=MySolution.MyPresentation" 
    /*controls namespace and assembly*/
    >    
       <Grid>
            <userControls:ReusableControl
            /*particular properties of ReusableControl */
            />
       </Grid>    
    <window>
    

    【讨论】:

    • 我的问题是关于 WPF 中的用户控件而不是自定义控件我可以在用户控件的情况下使用上述 sn-p
    • 对不起。你绝对可以试试,应该不会有太大区别的。
    • @Anindita Bhattacharyya 我更新了代码 sn-p 以反映这一点
    【解决方案2】:

    最好的办法是:

    在其他项目中定义您的用户控件仅包含您的用户控件作为类库项目(如 Scott Say)

    但您仍然可以通过以下步骤手动执行此操作:

    1. 从 App1-pro 复制您的用户控件(来自解决方案资源管理器) 到 App2-pro(即使你可以这样做 从 vs 到另一个 vs)
    2. 打开代码 隐藏文件并转到Ctor并找到 InitializeComponent-方法推送 f12(或使用 goto 定义 右键菜单)
    3. 更改名称 从application1 到的空间 Application2 namespace(哎呀保存 它!)
    4. 更改代码隐藏文件 命名空间如上述步骤(也保存 它)
    5. 转到 xaml 文件并更改 这个 x:Class=WpfApplication1.UserControlx:Class=WpfApplication2.UserControl

    现在享受您的用户控制!

    【讨论】:

    • 你的意思是在另一个项目中复制同一个用户控件的内容我恐怕不想实现这个
    • 不,我的意思是从 VS 复制该文件(从解决方案资源管理器中选择 Hole 文件)&)
    【解决方案3】:

    将您的控件重构为单独的 Windows 库 (dll),然后将该 dll 添加到每个项目的引用中。

    【讨论】:

    • 应用程序 1 正在构建为 exe 而不是我们项目中长期存在的 dll 我无法修改它..
    • 我正在创建另外一个独立的 WPF exe,我需要保留应用程序 1 中定义的一些用户控件以具有相同的外观和感觉
    猜你喜欢
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多