xlswriter中textbox半透明填充

修改文件:
Python.3.9\LocalCache\local-packages\Python39\site-packages\xlsxwriter\drawing.py

参照:
"Python.3.9\LocalCache\local-packages\Python39\site-packages\xlsxwriter\chart.py"(3260,33): self._write_a_alpha(transparency)

文本框属性

    tx_props = {
        'width': width,
        'height': height,
        'fill': {'color': '#f6f6f6', 'transparency': 20},
        'border': {'color': '#000000', 'width': 1},
        'align': {'vertical': 'middle', 'horizontal': 'left'},
        'font': {'bold': False, 'name': u'微软雅黑', 'size': 12},
    }

函数_write_xdr_sp_pr片段

...
        if shape.fill:
            if not shape.fill['defined']:
                # Write the a:solidFill element.
                self._write_a_solid_fill_scheme('lt1')
            elif 'none' in shape.fill:
                # Write the a:noFill element.
                self._xml_empty_tag('a:noFill')
            elif 'color' in shape.fill:
                # Write the a:solidFill element.
                transparency = shape.fill.get('transparency', None)
                self._write_a_solid_fill(get_rgb_color(shape.fill['color']), transparency)
...
    def _write_a_solid_fill(self, rgb, transparency=None):
        # Write the <a:solidFill> element.
        if rgb is None:
            rgb = 'FFFFFF'

        self._xml_start_tag('a:solidFill')

        # Write the a:srgbClr element.
        self._write_a_srgb_clr(rgb, transparency)

        self._xml_end_tag('a:solidFill')
    def _write_a_srgb_clr(self, val, transparency=None):
        # Write the <a:srgbClr> element.

        attributes = [('val', val)]
        if transparency:
            self._xml_start_tag('a:srgbClr', attributes)

            # Write the a:alpha element.
            self._write_a_alpha(transparency)

            self._xml_end_tag('a:srgbClr')
        else:
            self._xml_empty_tag('a:srgbClr', attributes)

    def _write_a_alpha(self, val):
        # Write the <a:alpha> element.

        val = int((100 - int(val)) * 1000)

        attributes = [('val', val)]

        self._xml_empty_tag('a:alpha', attributes)

在WPF(Windows Presentation Foundation),如果你想让`TextBox`控件看起来完全透明,你可以通过设置其背景颜色和边框样式来实现。以下是步骤: 1. 首先,创建一个`TextBox`元素,并将其初始样式设置为默认的非透明样式。 ```xml <TextBox x:Name="transparentTextBox" Background="Transparent" BorderBrush="{x:Null}" /> ``` 在这里,`Background="Transparent"`将背景设为透明,`BorderBrush="{x:Null}"`去掉边框的颜色,使其透明。 2. 如果你还想让输入文字时的焦点区域也透明,可以使用`Control.Template`来修改模板: ```xml <Style TargetType="TextBox"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="TextBox"> <Grid> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualState Name="Normal" /> <VisualState Name="Focused" /> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Rectangle Fill="#00FFFFFF" /> <!-- 使用白色填充作为透视线 --> <ContentPresenter HorizontalAlignment="Left" VerticalAlignment="Top"/> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Background" Value="Transparent" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> ``` 这将在鼠标悬停、聚焦和其他状态时保持背景透明。 请注意,虽然文本框本身变得透明,但是用户仍然能看到他们正在键入的文字,因为文字会显示出来。如果你希望完全看不见键盘输入,那么你需要考虑其他类型的UI组件,如密码框或隐藏输入的`PasswordBox`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值