Две вещи выделяются в моей голове:
1) можно включить и выключить Трассировку от кода:
#ifdef DEBUG
if (Context.Request.QueryString["DoTrace"] == "true")
{
Trace.IsEnabled = true;
Trace.Write("Application:TraceStarted");
}
#endif
2) можно создать несколько .aspx страниц с помощью только одного общего "кода - позади" файла.
Сборка один класс .cs файл:
public class Class1:System.Web.UI.Page
{
public TextBox tbLogin;
protected void Page_Load(object sender, EventArgs e)
{
if (tbLogin!=null)
tbLogin.Text = "Hello World";
}
}
и затем у Вас может быть любое число .aspx страниц (после удаления .designer.cs и кода .cs - позади того, который VS генерировал):
<%@ Page Language="C#" AutoEventWireup="true" Inherits="Namespace.Class1" %>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="tbLogin" runat="server"></asp: TextBox >
</div>
</form>
у Вас могут быть средства управления в ASPX, которые не появляются в Class1, и наоборот, но Вы должны к remeber проверить свои средства управления на пустые указатели.
Итак, хорошо, я нашел решение.
Я использовал метод суперсэмплинга bobince , предложенный ранее, но обнаружил, что изображения становятся размытыми. Итак, я не стал бы приводить полный код, но объясню свое решение.
Это может показаться немного идиотским, но я не нашел другого способа сделать это без привлечения каких-либо других библиотек.
С помощью PIL вы рисуете белые (или любого другого цвета, включая прозрачные) углы на изображении. Затем вы его копируете. Теперь у вас должно быть два изображения с хрустящими белыми закругленными углами без сглаживания.
Теперь вы должны использовать метод масштабирования -> суперсэмплинг (см. Ответ bobince выше для подробностей), чтобы сделать одно из изображений гладким (я использовал 8-кратное масштабирование).
Теперь у вас есть два изображения - одно с четкими углами, а другое с гладкими углами, но с размытым изображением.
Теперь вам нужно сделать углы четкого изображения прозрачными и вставить все изображение на гладкое. Для этого я использовал метод Image.composite (crispy_image, smooth_image, crispy_image) в библиотеке PIL.
Voila!
] Обычно я использую изображение в качестве маски, например, вот такое:
border.png
alt text http://nadiana.com/sites/default/files/pil_tutorial/border.png
border = Image.open('border.png')
source = border.convert('RGB')
img.paste(source, mask=border)
Размер маски можно изменить в соответствии с желаемыми размерами. Просто убедитесь, что вы используете метод Image.ANTIALIAS.
Вы можете обратиться к учебнику , который я написал некоторое время назад, для получения более подробной информации (бесстыдный плагин)
Если вы хотите больше контролировать размер и радиус, то вам нужно использовать дугу или круговой разрез. Я не http://bazaar.launchpad.net/~stani/phatch/trunk/annotate/head:/phatch/actions/round.py
Мне это тоже кажется достаточно гладким.
Вам потребуется суперсэмпл : нарисовать дугу до большего изображения и уменьшить его.
например. белая, плавно полупрозрачная нижняя правая рамка 16x16 с квадратной суперсэмплингом 4x4x:
>>> import Image, ImageDraw
>>> im= Image.new('RGBA', (16*4, 16*4), (255, 255, 255, 0))
>>> dr= ImageDraw.ImageDraw(im)
>>> dr.pieslice((-64, -64, 64, 64), 0, 340, fill=(255,255,255,255))
>>> im= im.resize((16, 16), Image.ANTIALIAS)
>>> im.save('border-se.png')