Viền và Đổ bóng
Viền và Đổ bóng
Định dạng viền và đổ bóng trong Aspose.Words FOSS cho .NET được mô hình hoá bằng hai lớp thuộc tính liên quan: Border, mô tả một đường viền đơn, và Shading, mô tả một mẫu nền. Các đoạn văn, bảng, ô và phông chữ mỗi đều cung cấp một BorderCollection (nhiều mặt Border) và một đối tượng Shading duy nhất thông qua các thuộc tính định dạng tương ứng của chúng.
Làm việc với các viền riêng lẻ
Một đối tượng Border đại diện cho một đường viền và cung cấp LineStyle (một giá trị enum từ LineStyle, chẳng hạn như Single, Double, Dot hoặc Wave), LineWidth, Color, DistanceFromText, Shadow, và các thuộc tính ThemeColor/TintAndShade nhận thức về chủ đề. Gọi ClearFormatting() trên một Border để đặt lại nó về trạng thái mặc định (không có viền).
BorderCollection nhóm nhiều đối tượng Border cho các mặt của một đối tượng. Nó cung cấp các thuộc tính có tên cho bốn cạnh — Left, Right, Top, Bottom — cùng với Horizontal và Vertical cho các viền bảng nội bộ. Bộ chỉ mục BorderCollection truy xuất một mặt cụ thể bằng cách sử dụng giá trị enum BorderType (Left, Right, Top, Bottom, Horizontal, Vertical, DiagonalDown, DiagonalUp, hoặc None) làm khóa. Đặt LineWidth, LineStyle, hoặc Color trực tiếp trên bộ sưu tập sẽ áp dụng giá trị đó cho mọi viền trong bộ một cách đồng thời; ClearFormatting() xóa tất cả các viền trong bộ cùng lúc.
Áp dụng Đổ bóng
Shading chứa mẫu nền cho một đối tượng: BackgroundPatternColor và ForegroundPatternColor xác định hai màu của mẫu, và Texture (một giá trị enum TextureIndex) chọn mẫu — các tô đặc sử dụng TextureIndex.TextureSolid, trong khi các mẫu phần trăm và hướng (Texture10Percent tới Texture97Pt5Percent, TextureHorizontal, TextureDiagonalCross, và các mẫu khác) tái hiện thư viện đổ bóng của Word. ForegroundPatternThemeColor và BackgroundPatternThemeColor cung cấp các tương đương màu chủ đề, cùng với điều chỉnh độ sáng/độ tối qua ForegroundTintAndShade và BackgroundTintAndShade. ClearFormatting() đặt lại một đối tượng Shading thành không có nền.
Mẹo và Thực hành Tốt nhất
- Đặt
TexturethànhTextureIndex.TextureSolidvà sử dụngBackgroundPatternColorcho việc tô nền đơn giản — trường hợp tô bóng phổ biến nhất. - Sử dụng bộ chỉ mục
BorderCollection(borders[BorderType.Horizontal]/borders[BorderType.Vertical]) để tiếp cận các đường lưới bên trong của bảng, các đường này không được hiển thị dưới dạng thuộc tính có tên. - Đặt thuộc tính trực tiếp trên
BorderCollection(thay vì trên từngLeft/Right/Top/BottomBorder) là cách nhanh nhất để áp dụng viền đồng nhất cho mọi phía. - Nhớ rằng
LineStyle.Noneloại bỏ đường nhìn thấy được mà không xóa phần còn lại của độ rộng hoặc màu sắc đã cấu hình của viền — hãy dùngClearFormatting()để đặt lại hoàn toàn. - Viền ô bảng và viền đoạn văn là các thể hiện
BorderCollectionđộc lập; việc thiết lập một trong số chúng không ảnh hưởng đến cái còn lại.
Các vấn đề thường gặp
| Vấn đề | Nguyên nhân | Cách khắc phục |
|---|---|---|
Viền không hiển thị sau khi đặt Color | LineStyle để lại ở LineStyle.None | Đặt LineStyle thành kiểu hiển thị như Single trước khi lưu |
| Đổ bóng xuất hiện dưới dạng tô đặc khi mong đợi một mẫu | Texture để lại ở mặc định | Đặt Texture một cách rõ ràng thành hằng số mẫu mong muốn |
| Các đường viền bên trong bảng không bị ảnh hưởng bởi việc thay đổi đường viền cạnh | Horizontal/Vertical tách biệt khỏi Left/Right/Top/Bottom | Đặt BorderCollection.Horizontal và .Vertical một cách rõ ràng |
Bộ chỉ mục BorderCollection trả về đường viền không mong đợi | Giá trị BorderType sai đã được truyền | Xác nhận giá trị enum BorderType khớp với phía mong muốn |
FAQ
Làm sao để áp dụng cùng một đường viền cho cả bốn phía của một ô bảng?
Đặt LineStyle, LineWidth và Color trực tiếp trên BorderCollection của ô thay vì trên từng Left, Right, Top và Bottom riêng lẻ — các bộ đặt cấp độ bộ sưu tập áp dụng cho mọi đường viền mà nó chứa.
Sự khác biệt giữa Border và Shading là gì?
Border mô tả một đường (kiểu, độ rộng, màu) được vẽ dọc theo một cạnh; Shading mô tả một mẫu nền được tô phía sau nội dung. Chúng độc lập — một đối tượng có thể có bóng nền mà không có đường viền, hoặc có đường viền mà không có bóng nền.
Enum nào kiểm soát mẫu đường kẻ trực quan của một đường viền?
LineStyle, với các giá trị như Single, Double, Dot, DashSmallGap và Wave.
Tôi có thể loại bỏ hoàn toàn một đường viền không?
Có — gọi ClearFormatting() trên Border hoặc BorderCollection, hoặc đặt LineStyle thành LineStyle.None.
API Reference Tóm tắt
| Lớp / Phương thức | Mô tả |
|---|---|
Border | Một đường viền đơn: kiểu, độ rộng, màu, bóng |
BorderCollection | Tập hợp các viền (Left, Right, Top, Bottom, Horizontal, Vertical) cho một đối tượng |
BorderType | Enum xác định một phía viền |
LineStyle | Enum các kiểu đường trực quan (Single, Double, Dot, v.v.) |
Shading | Đổ mẫu nền: màu sắc và Texture |
TextureIndex | Enum của các kết cấu mẫu tạo bóng |