Đây là bước đột phá đầu tiên của tôi vào các điều khiển tùy chỉnh và nó không hoạt động tốt. Tôi có một điều khiển biểu đồ tùy chỉnh bắt nguồn từ Canvas.Điều khiển tùy chỉnh wpf không được công nhận
namespace Grapher2 {
public class SeriesManager : Canvas {
public SeriesManager() {
...
}
}
}
Được xác định trong cùng một dự án và không gian tên như ứng dụng của tôi. Tôi đã cố gắng thêm một tham chiếu đến sự kiểm soát trong XAML như sau:
<Window x:Class="Grapher2.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:graph="clr-namespace:Grapher2"
Title="Grapher" Width="800" Height="600">
<StackPanel Name="container" Width="700" Height="500">
<graph:SeriesManager Name="seriesManager" Width="700" Height="500" />
</StackPanel>
Nhưng khi tôi cố gắng để tham khảo các tên kiểm soát "seriesManager" trong code-behind cho Window, tôi nhận được "Tên 'seriesManager' không tồn tại trong ngữ cảnh hiện tại. "
Hơn nữa, trình chỉnh sửa XAML sẽ không hiển thị Cửa sổ, tạo ra một dấu vết ngăn xếp lớn với lỗi: "Loại" MS.Internal.Permissions.UserInitiatedNavigationPermission 'trong Assembly' PresentationFramework, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 'không được đánh dấu là có thể tuần tự hóa được. "
Tôi tưởng tượng giải pháp là điều gì đó ngu ngốc đơn giản đối với bất kỳ ai đã thực hiện kiểm soát tùy chỉnh. Nhưng tôi đang bối rối.
x: Tên là bắt buộc đối với các tham chiếu trong cùng một assembly, điều này sẽ khắc phục được vấn đề không thể tham chiếu "seriesManager" trong đoạn mã phía sau. thêm thông tin: http://stackoverflow.com/questions/1380112/why-cant-i-use-the-name-attribute-on-usercontrol-in-the-same-assembly – Zenuka
Oh và BTW sử dụng x: Name thay thế Tên có thể khắc phục tất cả các vấn đề của bạn, hãy thử điều này trước và cho chúng tôi biết nếu có nhiều vấn đề hơn ... – Zenuka
x: Tên đã sửa lỗi! Cảm ơn! – Klay