Вы могли переопределить свойство RecognizesAccessKey ContentPresenter, который находится в шаблоне по умолчанию для маркировки. Например:
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.Resources>
<Style x:Key="{x:Type Label}" BasedOn="{StaticResource {x:Type Label}}" TargetType="Label">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Label">
<Border>
<ContentPresenter
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
RecognizesAccessKey="False" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Grid.Resources>
<Label>_This is a test</Label>
</Grid>
</Page>
Нет, вы не можете, но вы можете передать : allow_nil => true
параметр, чтобы вернуть nil, если мастер равен nil.
class User < ActiveRecord::Base
delegate :company, :to => :master, :allow_nil => true
# ...
end
user.master = nil
user.company
# => nil
user.master = <#User ...>
user.company
# => ...
В противном случае вам нужно написать свой собственный метод вместо использования макроса делегата для более сложных параметров.
class User < ActiveRecord::Base
# ...
def company
master.company if has_master?
end
end