Создайте UserControl, который оборачивает метку и жесткие коды
Width = Height = Auto
и
BorderThickness = 0
.
Что-то вроде:
<UserControl ...>
<Label Width="Auto" Height="Auto" BorderThickness="0" />
</UserControl>
Конечно, вам нужно будет выставить другие свойства через свойства зависимостей.
РЕДАКТИРОВАТЬ: (выстрел в темноте)
Вы можете попробовать это:
public class NewLabel : Label
{
private readonly object m_AutoValue;
public NewLabel()
{
m_AutoValue = base.GetValue(NewLabel.HeightProperty);
NewLabel.HeightProperty.OverrideMetadata(typeof(NewLabel), new PropertyMetadata(
new PropertyChangedCallback(
(dpo, dpce) =>
{
if (!dpce.NewValue.Equals(m_AutoValue))
{
((NewLabel)dpo).ClearValue(Label.HeightProperty);
}
})));
}
}
Я только что придумал, так что, возможно, понадобится отладка, но вы поняли;)